InfluxDb高基数数据

时间:2017-07-26 17:20:19

标签: influxdb

在引发异常一段时间后,我通过Java API(在引擎盖下使用http API)使用批处理点将数据插入到InfluxDb中。

java.lang.RuntimeException: {"error":"partial write: max-values-per-tag limit exceeded (100010/100000):

根据Influx文档 - docs,此参数可以防止高基数数据在被修复到Influx之前被写入。

我可以将其设置为0以删除Exception。但我不清楚什么是高基数数据"。拥有"高基数数据"有什么不对?插入InfluxDb。我将插入数百万个唯一值并需要将它们编入索引。我需要查看我的数据设计吗?

2 个答案:

答案 0 :(得分:1)

他们在内存索引中使用“标签”,你拥有的标签值越多(数据的平均值越高),内存流量需要的就越多。

https://github.com/influxdata/influxdb/issues/7151

答案 1 :(得分:0)

对于高基数数据,InfluxDB可能需要大量内存(每个时间序列约10KB的内存),并且内存需求可能会随唯一时间序列的数量呈指数增长。有关详细信息,请参见these official docs

还存在其他时间序列数据库,这些数据库需要较少的RAM来存储高基数数据。例如,this benchmark比较了InfluxDB和VictoriaMetrics(可理解Influx line protocol的另一种TSDB)的内存使用情况和性能。