在InfluxDB中将内存性能的测量拆分为多个测量?例如,金融价格数据的每个股票代码一个度量值



我们在32 GB(内存)服务器上的InfluxDB实例中存储了大量的分分钟股价波动数据,具有充足的存储空间。不幸的是,我们的记忆力有问题。已完成以下调整:

cache_snapshot_memory_size         => 6553600,
cache_snapshot_write_cold_duration => '1m',
max_series_per_database            => 10000000,
cluster_write_timeout              => '10s',

系列的数量约为65万,而且几乎没有增长。

简化后,我们的模式目前将出价和要价存储在单个测量值orderbook中,除了一些(索引的)标签外,还包含(非索引的)字段,如bidaskbid_volumeask_volume等。除了ticker标签之外,所有标签的基数都很小。

如果每个股票行情器有一个订单簿测量值,我们会看到内存占用减少吗?orderbook.aaplorderbook.googlorderbook.abc

目前,我们有大约300个股票行情,但几年后可能会增长到10000个。

在检索数据时,我们总是在股票代码上使用过滤器。

参考文献:

  • 争论不将数据存储在度量中,而是因为编写查询有多难。记忆表现对我们来说至关重要:https://docs.influxdata.com/influxdb/v1.1/concepts/schema_and_data_layout/
  • 由于内存问题,在"帐户"上拆分,但这是一个旧的博客条目:http://www.ryandaigle.com/a/time-series-db-design-with-influx

gophers.slak.com上#influxdb的答案:

  • 您提议的方法是无效的。我们强烈建议使用标签。这就是数据库假设用户将对其数据建模的方式。向测量添加元数据是一种反模式

  • 将独特的标签拆分为独特的测量值不会显著帮助您的内存消耗

相关内容

  • 没有找到相关文章

最新更新