超过每个标签的最大值限制 InfluxDB

Posted

技术标签:

【中文标题】超过每个标签的最大值限制 InfluxDB【英文标题】:Max values per tag limit exceeded InfluxDB 【发布时间】:2017-10-01 21:26:53 【问题描述】:

我正在使用 java 并使用批处理点写入 InfluxDb。我的代码在下面提到,

 BatchPoints batchPoints = BatchPoints
.database(dbName).retentionPolicy("autogen") .consistency(InfluxDB.ConsistencyLevel.ALL).build();


    point = Point.measurement("cpu")...

    batchPoints.point(point);

我正在写 20 到 3000 万个点,过了一会儿就出现异常:

.java.lang.RuntimeException: "error":"partial write: max-values-per-tag limit exceeded (100708/100000): measurement=\"cpu\" tag=\"jkey\" value=\ .....

想知道如何增加限制?还是我需要更改我的架构设计?

【问题讨论】:

【参考方案1】:

我找到了解决方案,所以粘贴到这里,打开通常位于 /etc/influxdb/influxdb.conf 的 influxdb.conf 文件并搜索:

# max-values-per-tag = 100000

取消注释并将值替换为零,如下所示,

max-values-per-tag = 0

并反弹 influxDb 实例以使更改生效。

【讨论】:

我也发现了。我担心的是:对于时间序列数据库来说,1M 行不是那么多吗?我相信 1M 行不应该是一个问题,然而,这个限制让我觉得相反...... 是的,默认情况下,每个标签允许的值非常低。它应该至少是它的 10 倍。 添加更多信息的链接:docs.influxdata.com/influxdb/v1.5/administration/config/… @Ammad 实际上 10000 对于这个参数来说已经是一个相当大的值了。这是关于给定标签键的唯一值。每个这样的唯一值都会产生新的系列(可以将它们视为磁盘上的文件)。拥有 10000 个单独的文件已经有点奇怪了。但是有一个1e6的文件是不合理的。 这可能是一个“解决方案”,但除非您真的知道自己在做什么,否则您的 InfluxDB 架构很可能以非最佳方式使用标签。一般来说,标签应该很少有唯一值。进一步参考:docs.influxdata.com/influxdb/v1.7/concepts/…

以上是关于超过每个标签的最大值限制 InfluxDB的主要内容,如果未能解决你的问题,请参考以下文章

mysql varchar 最大可以设定多少

Mysql一个表中 最多能存多少文字? 一列中varchar最大值允许多少?

cookie超过最大长度限制如何解决

最大文件数可以同时php上传

如何在 MD-selection-list Angular2 中设置检查元素的最大限制

绝对差不超过限制的最长数组