超过每个标签的最大值限制 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最大值允许多少?