Documentation

选择语句

使用 SELECT 语句从一个或多个 度量 中查询数据。 SELECT 语句 需要 一个 SELECT 子句 和一个 FROM 子句

语法

SELECT field_expression[, ..., field_expression_n[, tag_expression[, ..., tag_expression_n]]] FROM measurement_expression[, ..., measurement_expression_n]

选择子句

选项 SELECT 子句支持多种格式来识别要查询的数据。它需要一个或多个 字段表达式 和可选的 标签表达式

  • field_expression: 表达式,用于识别要在查询结果中返回的一个或多个字段。可以是field key,常量,regular expressionwildcard (*),或function expression以及任何算术运算符的组合。
  • tag_expression: 用于识别在查询结果中返回一个或多个标签的表达式。可以是一个 tag key 或常量。

选择子句行为

  • SELECT field_key - 返回特定字段。
  • SELECT field_key1, field_key2 - 返回两个特定字段。
  • SELECT field_key, tag_key - 返回特定的字段和标签。
  • SELECT * - 返回所有 字段标签参见 通配符表达式
  • SELECT /^[t]/ - 返回所有 fieldstags,其键匹配正则表达式。至少一个字段键必须匹配正则表达式。如果没有字段键匹配正则表达式,则不返回结果。

FROM 子句

FROM 子句指定要查询的 度量子查询。 它需要一个或多个用逗号分隔的 度量表达式子查询

测量表达式

测量表达式标识要查询的测量。 它可以是测量名称、完全限定的测量、常量或正则表达式

  • 测量名称: 当仅使用测量名称时,InfluxQL 假定查询请求中指定的数据库的默认保留策略。

    FROM measurement
    
  • 完全限定度量: 一个完全限定的度量包含数据库名称、保留策略名称和度量名称,每个名称之间用一个点 (.) 分隔。如果未指定保留策略,InfluxQL将使用指定数据库的默认保留策略。

FROM database.retention_policy.measurement

-- Fully-qualified measurement with default retention policy
FROM database..measurement

InfluxQL 保留策略

在 InfluxDB Cloud Serverless 中,保留策略 并不像 InfluxDB 1.x 中那样是数据模型的一部分。每个 InfluxDB Cloud Serverless 数据库都有一个 保留期限,定义了在数据库中保留数据的最大年龄。要在 InfluxQL 查询中使用完全限定的度量,请在 创建数据库 时使用以下命名约定:

database_name/retention_policy

子查询

InfluxQL 子查询是在 InfluxQL 查询的 FROM 子句中嵌套的查询。外部查询查询由内部查询(子查询)返回的结果。

有关更多信息,请参见 InfluxQL 子查询

显著的SELECT语句行为

必须至少查询一个字段

查询至少需要一个 字段键SELECT 子句中以返回数据。 如果 SELECT 子句仅包含 标签键,则查询返回空结果。 在 SELECT 子句中使用正则表达式时,如果正则表达式仅匹配标签键而没有字段键,则查询返回空结果。

要返回与标签键相关联的数据,至少在SELECT子句中包含一个字段键。

通配符表达式

当在SELECT子句中使用通配符表达式 (*) 时,查询返回所有标签和字段。 如果对通配符表达式应用了函数,则查询返回应用了该函数的所有字段,但除非它们包含在SELECT子句中,否则不返回标签

不能同时包含聚合和非聚合字段表达式

SELECT 语句不能同时包含一个聚合字段表达式(使用了一个 aggregateselector 函数)一个非聚合字段表达式。例如,在以下查询中,一个聚合函数应用于一个字段,但不是另一个:

SELECT mean(temp), hum FROM home

此查询返回一个错误。 有关更多信息,请参见 关于混合聚合和非聚合查询的错误

数据类型和类型转换操作

SELECT 子句 支持使用 :: 语法指定 字段 的类型和基本的 类型转换操作。

SELECT field_expression::type FROM measurement_expression

这个 :: 语法允许用户在查询中执行基本的类型转换操作。 目前,InfluxQL 支持将 数值 字段值 转换为其他数值类型。 转换为 标识符类型 作为结果的过滤器,仅返回该特定标识符类型的列以及 time 列。

数字类型
  • float
  • integer
  • unsigned
非数字类型
  • string
  • boolean
标识符类型
  • field
  • tag

如果查询尝试将数值型值转换为非数值型类型,反之亦然,InfluxQL将不返回数据。

将浮点值转换为整数或无符号整数时,浮点值在小数点处被截断。没有进行四舍五入。

SELECT 语句示例

下面的示例使用以下样本数据集:

从一个测量中选择所有字段和标签

从测量中选择特定标签和字段

从一个测量中选择所有字段

从测量中选择一个字段并执行基本算术运算

从多个测量中选择所有数据

从完全限定的测量中选择所有数据(使用默认的数据保留策略)

类型转换示例

将整数字段转换为浮点数

将浮点字段转换为整数

将浮点字段转换为无符号整数



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 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

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

InfluxDB 云端无服务器