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

标签 database influxdb nosql

我们有大量的亚分钟股票价格变动数据存储在 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 个。

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

引用文献:

最佳答案

#influxdb 的回答 gophers.slack.com :

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

  • 将唯一标签拆分为唯一测量值不会显着减少内存消耗

关于database - 在 InfluxDB 中将测量拆分为多个测量以提高内存性能?例如,金融价格数据的每个股票代码的一种度量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41693409/

相关文章:

python - 编程错误 : column "product" is of type product[] but expression is of type text[] enum postgres

influxdb - 在 InfluxDB 中将 TAG 转换为 FIELD

java - boolean 字段上的 Aerospike 过滤器表达式不起作用

linux - 如何在 linux 服务器上对 neo4j 数据进行备份和恢复?

node.js - 在 MongoDB 中,更好的做法是为常用查询对象提供它们自己的引用模式,还是将它们保留在其父级中?

sql-server - 集体网络聊天

java - 如何使用 Java Spring 在 MySql 中实现 Multi-Tenancy

database - 无法在 Mac OS X 上启动 Homebrew PostgreSQL 安装 - "Permission Denied"

python-3.x - 如何从 CSV 文件将数据插入 Influxdb

go - 如何在golang中将lineprotocol数据推送到influxdb?