Documentation

执行基本的InfluxQL查询

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

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

* Required
  • * 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 列,包含记录的 table 名称
  • 在查询的 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) 到 现在

查询数据 没有时间限制 可能会返回意外数量的数据。 查询可能需要很长时间才能完成,结果可能会被截断。

SELECT * FROM home

查询特定字段和标签

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

SELECT time, room, temp, hum FROM home

根据标签值查询字段

  • SELECT子句中,包含您想要查询的字段和您想要根据其基础条件的标签。
  • WHERE子句中,包括将标签标识符与字符串字面量进行比较的谓词。使用 逻辑运算符 将多个谓词连接在一起并应用多个条件。
SELECT * FROM home WHERE room = 'Kitchen'

根据字段值查询积分

  • SELECT 子句中,包括您想要查询的字段。
  • WHERE子句中,包含将字段标识符与值或表达式进行比较的谓词。 使用 逻辑运算符 (AND, OR) 将多个谓词连接在一起,并应用多个条件。
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 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: