文档文档

查询唯一值缓存

在 SQL SELECT 语句的 FROM 子句中使用 distinct_cache() SQL 函数,以从 Distinct Value Cache (DVC) 查询数据。

您必须使用 SQL 来查询 DVC。InfluxQL 不支持 distinct_cache() 函数。

distinct_cache() 支持以下参数

  • table_name: (必需) DVC 所关联表的名称,格式为字符串字面量。
  • cache_name: 要查询的 DVC 的名称,格式为字符串字面量。仅当指定的表关联了多个 DVC 时,才需要此参数。
SELECT * FROM distinct_cache('table_name', 'cache_name')

您可以使用其他 SQL 子句 来修改查询结果。例如,您可以使用 WHERE 子句返回与另一个不同标记值相关联的不同标记值。

SELECT
  city
FROM
  distinct_cache('wind_data', 'windDistinctCache')
WHERE
  country = 'Spain'

使用 HTTP API

要使用 HTTP API 查询缓存的数据,请向 /api/v3/query_sql 端点发送 GETPOST 请求,并在您的查询中包含 distinct_cache() 函数。

GET /api/v3/query_sql
POST /api/v3/query_sql
curl -X POST "https://:8181/api/v3/query_sql" \
  --header "Authorization: Bearer 
AUTH_TOKEN
"
\
--json '{ "db": "
DATABASE_NAME
",
"q": "SELECT * FROM distinct_cache('\''
TABLE_NAME
'
\'', '\''
CACHE_NAME
'
\'')",
"format": "json" }'

带 WHERE 子句的示例

curl -X POST "https://:8181/api/v3/query_sql" \
  --header "Authorization: Bearer 00xoXX0xXXx0000XxxxXx0Xx0xx0" \
  --json '{
    "db": "example-db",
    "q": "SELECT room, temp FROM last_cache('\''home'\'', '\''homeCache'\'') WHERE room = '\''Kitchen'\''",
    "format": "json"
  }'

此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2