文档说明

执行基本的 InfluxQL 查询

InfluxQL(Influx 查询语言)是一种类似于 SQL 的查询语言,用于与 InfluxDB 交互并处理时间序列数据。

一个基本的 InfluxQL 查询,通常查询 InfluxDB 中的数据,包括以下子句

* 必需的
  • * SELECT:指定从 中返回的字段、标签和计算,或者使用通配符别名(*)从表中选择所有字段和标签。它需要至少一个 字段键 或通配符别名(*)。有关更多信息,请参阅 显著的 SELECT 语句行为
  • * FROM:指定要查询的 。它需要至少一个以逗号分隔的 测量表达式
  • WHERE:根据 字段值标签值时间戳 过滤数据。仅返回满足指定条件的数据——例如,在时间范围内,包含特定的标签值或包含超出指定范围的字段值。
SELECT
  temp,
  hum,
  room
FROM home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T20:00:00Z'

结果集

如果至少有一行满足查询条件,InfluxDB 集群将返回查询结果集中的行数据。如果查询使用了 GROUP BY 子句,结果集包括以下内容:

  • 查询 SELECT 子句中列出的列
  • 包含记录或分组时间戳的 time
  • 包含记录 名的 iox::measurement
  • 查询 GROUP BY 子句中列出的列;结果集中的每一行都包含用于分组的值

GROUP BY 结果列

如果查询使用了 GROUP BYWHERE 子句未按时间过滤,则分组基于 默认时间范围

基本查询示例

示例数据

以下示例使用了 入门家居传感器数据。在运行示例查询并返回结果之前,请先将示例数据写入到您的 InfluxDB 集群数据库中。

查询时间边界内的数据

  • 使用 SELECT 子句指定要返回的标签和字段。指定至少一个字段键。要返回所有标签和字段,请使用通配符别名(*)。
  • FROM 子句中指定要查询的
  • WHERE 子句中指定时间边界。包括比较 time 列值与时间戳的时间相关谓词。使用 AND 逻辑运算符将多个谓词连接起来。
SELECT *
FROM home
WHERE
  time >= '2022-01-01T08:00:00Z'
  AND time <= '2022-01-01T12:00:00Z'

查询时间边界可以是相对的或绝对的。

使用相对时间边界进行查询

使用绝对时间边界进行查询

查询无时间边界的数

要查询无时间边界的数,不要在 WHERE 子句中包含任何基于时间的时间谓词。如果没有在 WHERE 子句中定义时间范围,则默认时间范围是 Unix 纪元(1970-01-01T00:00:00Z)到 now

查询无时间边界的数据可能会返回意外数量的数据。查询可能需要很长时间才能完成,并且结果可能会被截断。

SELECT * FROM home

查询特定的字段和标签

要在 SELECT 子句中查询特定字段,请包括它们。如果查询多个字段或标签,请用逗号分隔。如果字段或标签键包含特殊字符、空格或区分大小写,请将键用 双引号 括起来。

SELECT time, room, temp, hum FROM home

基于标签值查询字段

  • SELECT 子句中,包括要查询的字段和基于其条件的基础标签。
  • WHERE 子句中,包括比较标签标识符与字符串文字的谓词。使用 逻辑运算符 将多个谓词连接起来,并应用多个条件。
SELECT * FROM home WHERE room = 'Kitchen'

基于字段值查询点

  • SELECT 子句中,包括要查询的字段。
  • WHERE 子句中,包含比较字段标识符与值或表达式的谓词。使用 逻辑运算符ANDOR)将多个谓词链接起来,并应用多个条件。
SELECT co, time FROM home WHERE co >= 10 OR co <= -10

别名查询字段和标签

要为查询的字段和标签重命名或别名,使用 AS 子句。在要别名的标签、字段或表达式后面,通过 AS 后跟别名名称作为标识符(如果别名包含空格或特殊字符,请用双引号 " 括起来)——例如

SELECT temp AS temperature, hum AS "humidity (%)" FROM home

InfluxQL 中别名列时,使用 AS 子句和 标识符。在 SQL 中别名列 时,可以使用 AS 子句来定义别名,但这不是必需的。


这个页面有用吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB v3 增强功能和 InfluxDB Clustered 现已普遍可用

新功能包括更快的查询性能和管理工具,推动了 InfluxDB v3 产品线的进步。InfluxDB Clustered 现已普遍可用。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著的提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您 InfluxDB 集群的健康状况,InfluxDB Cloud Dedicated 中的单一登录 (SSO) 支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB Clustered 普遍可用

InfluxDB Clustered 现已普遍可用,并为您在自行管理的堆栈中提供了 InfluxDB v3 的功能。

与我们谈谈 InfluxDB Clustered