【问题标题】:Max values per tag limit exceeded InfluxDB超过每个标签的最大值限制 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=\ .....

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

【问题讨论】:

    标签: influxdb


    【解决方案1】:

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

    # max-values-per-tag = 100000
    

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

    max-values-per-tag = 0
    

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

    【讨论】:

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