文档文档

在 InfluxDB 3 Core 中查询数据

InfluxDB 3 Core 支持原生 SQL 和 InfluxQL 进行数据查询。InfluxQL 是一种类 SQL 查询语言,专为 InfluxDB v1 设计,并针对时间序列查询进行了定制。

为确保查询性能,InfluxDB 3 Core 将查询时间范围限制在大约 72 小时(包括最近和历史数据)。有关 72 小时限制的更多信息,请参阅关于 InfluxDB 3 Core 72 小时限制的更新

InfluxDB v2 中引入的 Flux 语言在 InfluxDB 3 中受支持。

使用 influxdb3 CLI 查询数据

要开始在 InfluxDB 3 Core 中查询数据,请使用influxdb3 query 命令并提供以下内容

  • -H, --host:服务器的主机 URL (默认为 http://127.0.0.1:8181
  • -d, --database必需 要查询的数据库名称
  • -l, --language:提供的查询字符串的查询语言
    • sql (默认)
    • influxql
  • SQL 或 InfluxQL 查询(字符串形式)

如果在您的环境中未设置 设置 InfluxDB 3 Core 中定义的 INFLUXDB3_AUTH_TOKEN 环境变量,请设置它,或者在命令中使用 -t, --token 选项提供您的令牌。

要查询您在 将数据写入 InfluxDB 3 Core 中写入的家庭传感器示例数据,请运行以下命令

influxdb3 query \
  --database 
DATABASE_NAME
\
"SELECT * FROM home ORDER BY time"
influxdb3 query \
  --database 
DATABASE_NAME
\
--language influxql \ "SELECT * FROM home"

DATABASE_NAME 替换为要查询的数据库名称。

要从特定时间范围查询,请使用 WHERE 子句来指定时间范围的边界。

influxdb3 query \
  --database 
DATABASE_NAME
\
"SELECT * FROM home WHERE time >= now() - INTERVAL '7 days' ORDER BY time"
influxdb3 query \
  --database 
DATABASE_NAME
\
--language influxql \ "SELECT * FROM home WHERE time >= now() - 7d"

示例查询

列出数据库中的表

返回所有房间的平均温度

返回厨房的平均温度

查询绝对时间范围内的数据

查询相对时间范围内的数据

每房间每 3 小时窗口计算平均湿度

执行查询的其他工具

还有其他工具可用于在 InfluxDB 3 Core 中查询数据,包括以下内容

使用 API 查询

使用 Python 客户端查询

使用 InfluxDB 3 Explorer 查询

SQL vs InfluxQL

InfluxDB 3 Core 支持两种查询语言——SQL 和 InfluxQL。虽然这两种查询语言相似,但有一些重要的区别需要考虑。

SQL

InfluxDB 3 SQL 实现提供了一个功能齐全的 SQL 查询引擎,由Apache DataFusion 提供支持。InfluxDB 扩展了 DataFusion,增加了时间序列特定的功能,并支持复杂的 SQL 查询,包括使用连接(joins)、联合(unions)、窗口函数(window functions)等的查询。

InfluxQL

InfluxQL 是一种类 SQL 查询语言,专为 InfluxDB v1 构建,并在 InfluxDB 3 Core 中得到支持。其语法和功能与 SQL 类似,但专门用于查询时间序列数据。InfluxQL 不提供 SQL 所具有的全部查询功能。

如果您从旧版 InfluxDB 迁移,可以继续使用 InfluxQL 和您一直在使用的既有的 InfluxQL 相关 API。

优化查询

InfluxDB 3 Core 提供以下优化选项来改进特定类型的查询

最近值缓存

InfluxDB 3 Core 最近值缓存 (LVC) 将一个序列或列层次结构中的最后 N 个值存储在内存中。这使数据库能够以低于 10 毫秒的速度回答这些类型的查询。有关配置和使用 LVC 的信息,请参阅

唯一值缓存

InfluxDB 3 Core 唯一值缓存 (DVC) 将一个序列或列层次结构中指定列的唯一值存储在内存中。这对于快速元数据查找非常有用,可以在 30 毫秒内返回结果。有关配置和使用 DVC 的信息,请参阅


此页面是否有帮助?

感谢您的反馈!


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