【问题标题】:InfluxDB WHERE clause on a 'High Cardinality' field (or a tag)“高基数”字段(或标签)上的 InfluxDB WHERE 子句
【发布时间】:2020-08-24 20:23:10
【问题描述】:

我正在使用 InfluxDB 并尝试将其用于车速跟踪用例。 每辆车在给定时间的速度都存储为一个数据点。 我将“vehicle_registration”建模为标签,将其他值建模为字段。我希望将 where 子句应用于“vehicle_registration”并且它必须很快。因此,我默认利用标签上的索引功能。 但对我来说最大的绊脚石是标签需要具有较低的基数。 这里有什么建议?我希望在“where”子句中应用一个高基数字段,并且查询应该很快。

有什么建议吗?

【问题讨论】:

    标签: influxdb influxql


    【解决方案1】:

    高基数意味着更高的内存需求。因此,这实际上取决于您的用例中的高基数意味着什么。 1k 对于 8GB 内存可能没问题,但 1M 对于 8GB 可能有问题。最好的选择是尝试一下。模拟它,您将看到真实的内存需求。然后,您将能够基于此(当然还有您的预算)为 InfluxDB 配置适当的大小。

    或者你可以试试 TSI https://docs.influxdata.com/influxdb/v1.8/concepts/tsi-details/

    【讨论】:

    • 好的 - 我正在查看的基数约为 20M-30M。标签索引是否总是存储在内存中?相反,它可以由磁盘支持吗?在这种情况下,“理论上”我们可以用性能来换取内存成本。
    • @user1189332 见 TSI
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2017-12-28
    • 2020-10-20
    相关资源
    最近更新 更多