文档文档

管理 Distinct Value Cache

InfluxDB 3 Core Distinct Value Cache (DVC) 允许您缓存表中一个或多个列的不同值,从而提高返回不同标签和字段值的查询性能。

DVC 是一种内存缓存,用于存储表中特定列的不同值。当您创建 DVC 时,您可以指定要缓存哪些列的不同值、要缓存的最大不同值组合数以及缓存值的最大期限。DVC 与表关联,一个表可以有多个 DVC。

考虑具有以下模式的数据集

  • wind_data (表)
    • 标签
      • 国家
        • 多个欧洲国家
        • 多个欧洲县
      • 城市
        • 多个欧洲城市
    • 字段
      • wind_speed (浮点数)
      • wind_direction (整数)

如果您缓存 countrycountycity 的不同值,则 DVC 看起来类似于这样

国家城市
奥地利萨尔茨堡萨尔茨堡
奥地利维也纳维也纳
比利时安特卫普安特卫普
比利时西弗兰德省布鲁日
捷克共和国利贝雷茨州利贝雷茨
捷克共和国布拉格布拉格
丹麦首都大区哥本哈根
丹麦南丹麦大区欧登塞
爱沙尼亚东维鲁县科赫特拉-耶尔韦
爱沙尼亚东维鲁县纳尔瓦

DVC 结果中的重复值

当查询 DVC 时,不同值可能在一列中多次出现,但仅当与其他列中的不同值关联时才会出现。如果您查询 DVC 中的单列,则结果中不会重复任何值。

Null 列值

Null 列值仍然被视为值,并缓存在 DVC 中。如果您将数据写入表,并且未为现有列提供值,则列值将缓存为 null 并被视为不同值。

关于 Distinct Value Cache 的重要须知

DVC 存储在内存中;缓存越大,您的 InfluxDB 3 节点维护它所需的内存就越多。请考虑以下事项

高基数限制

“基数”是指缓存数据中唯一键列组合的数量,并且基本上定义了 DVC 中要存储的最大行数。虽然 InfluxDB 3 存储引擎不受基数限制,但它确实会影响 DVC。您可以为 DVC 定义自定义的最大基数限制,但更高的基数会增加存储 DVC 的内存需求,并可能影响 DVC 查询性能。

当服务器停止时,Distinct Value Cache 将被刷新

由于 DVC 是内存缓存,因此每次服务器停止时都会刷新缓存。服务器重启后,InfluxDB 3 Core 仅在您写入数据时才将新值写入 DVC,因此可能有一段时间 DVC 中某些值不可用。


此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看