文档文档

SELECT 语句

InfluxDB 3 Core 处于公开 Alpha 阶段

InfluxDB 3 Core 处于公开 alpha 阶段,可用于测试和反馈,但不适用于生产环境。该产品和本文档均在开发中。我们欢迎并鼓励您提供关于 alpha 体验的反馈,并邀请您加入我们的公共频道以获取更新和分享反馈。

Alpha 阶段的预期和建议

使用 SELECT 语句从一个或多个指标中查询数据。SELECT 语句必须包含 SELECT 子句FROM 子句

语法

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

SELECT 子句

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

  • field_expression:用于标识要在查询结果中返回的一个或多个字段的表达式。可以是字段键、常量、正则表达式通配符 (*)函数表达式 以及算术运算符的任意组合。
  • tag_expression:用于标识要在查询结果中返回的一个或多个标签的表达式。可以是标签键或常量。

Select 子句行为

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

FROM 子句

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

measurement_expression

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

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

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

FROM database.retention_policy.measurement

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

InfluxQL 保留策略

在 InfluxDB 3 Core 中,保留策略不是像 InfluxDB 1.x 中那样的数据模型的一部分。每个 InfluxDB 3 Core 数据库都有一个保留期,该保留期定义了数据库中要保留数据的最长期限。要在 InfluxQL 查询中使用完全限定的指标,请在创建数据库时使用以下命名约定

database_name/retention_policy

子查询

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

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

SELECT 语句的显著行为

必须查询至少一个字段

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

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

通配符表达式

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

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

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

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 开源版本现已可用于 alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个作为 alpha 版本一部分的产品。

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

有关如何入门的更多信息,请查看