Documentation

InfluxQL 选择器函数

使用选择器函数来评估、选择并返回数据中的值。选择器函数返回包含从每个InfluxQL组中选择的值的一行或多行。

示例使用的是提供的示例数据集,详见 开始使用InfluxDB教程.

缺失的InfluxQL函数

一些 InfluxQL 函数正在重新架构以与 InfluxDB 3 存储引擎配合使用。如果您需要的函数不在这里,请查看 InfluxQL 功能支持页面 以获取更多信息。

底部()

返回最小的 N 字段值BOTTOM() 支持 int64 和 float64 字段值 数据类型

BOTTOM(field_expression[, tag_expression_1[, ..., tag_expression_n]], N)

注意: BOTTOM() 在多个最小值相等的情况下,返回具有最早时间戳的字段值。

参数

  • field_expression: 用于标识要操作的字段的表达式。 可以是一个 field key 或常量。
  • tag_expression: 用于识别标签键以进行分段的表达式。可以是一个 tag key 或常量。使用逗号分隔多个标签。
  • N: 从每个 InfluxQL 组或指定标签段返回的结果数量。

显著行为

示例

选择字段中的最低三个值

选择两个唯一标签值的底部字段值

选择底部三个字段值及与每个字段值相关的标签值

选择唯一标签值和时间窗口内的底部字段值(按时间分组)

第一次()

返回具有最旧时间戳的 字段值

FIRST(field_expression)

参数

  • field_expression: 表达式用于识别一个或多个要操作的字段。可以是一个 字段键、常量、正则表达式或通配符 (*)。支持所有字段 数据类型

显著行为

示例

选择字段的第一个值

从每个字段中选择第一个值

从匹配正则表达式的字段键中选择第一个值

从时间窗口内的字段中选择第一个值(按时间分组)

最后()

返回具有最新时间戳的 字段值

LAST(field_expression)

参数

  • field_expression: 表达式用于识别一个或多个要操作的字段。可以是一个 字段键、常量、正则表达式或通配符 (*)。支持所有字段 数据类型

显著行为

示例

选择字段的最后一个值

从每个字段中选择最后一个值

选择与正则表达式匹配的字段键中的最后一个值

从时间窗口内的字段选择最后一个值(按时间分组)

最大值()

返回最大的 字段值

MAX(field_expression)

参数

  • field_expression: 表达式,用于识别一个或多个要操作的字段。可以是一个字段键,常量,正则表达式,或通配符 (*)。支持数值字段

显著行为

示例

选择一个字段中的最大值

从每个字段中选择最大值

选择与正则表达式匹配的字段键中的最大值

在时间窗口内选择字段中的最大值(按时间分组)

最小值()

返回最低的 字段值

MIN(field_expression)

参数

  • field_expression: 表达式,用于识别一个或多个要操作的字段。可以是一个字段键,常量,正则表达式,或通配符 (*)。支持数值字段

显著行为

示例

从一个字段中选择最小值

从每个字段中选择最小值

从匹配正则表达式的字段键中选择最小值

从时间窗口内的字段中选择最小值(按时间分组)

百分位数()

返回第 N 个百分位数 字段值

PERCENTILE(field_expression, N)

参数

  • field_expression: 表达式,用于识别一个或多个要操作的字段。可以是一个字段键,常量,正则表达式,或通配符 (*)。支持数值字段
  • N: 要返回的百分位数。 必须是大于 0 且小于或等于 100的整数或浮点值。

显著行为

示例

从一个字段中选择第50百分位值

从每个字段中选择第50百分位值

从符合正则表达式的字段键中选择第50百分位值

从时间窗口内的一个字段中选择第50百分位值(按时间分组)

顶部函数()

返回最大的 N 字段值TOP() 支持 int64 和 float64 字段值 数据类型

TOP(field_expression[, tag_expression_1[, ..., tag_expression_n]], N)

注意: TOP() 在多个值之间存在最大值的平局时返回具有最早时间戳的字段值。

参数

  • field_expression: 用于标识要操作的字段的表达式。 可以是一个 field key 或常量。
  • tag_expression: 用于识别标签键以进行分段的表达式。可以是一个 tag key 或常量。使用逗号分隔多个标签。
  • N: 从每个 InfluxQL 组或指定标签段返回的结果数量。

显著行为

示例

选择一个字段的前三个值

选择两个唯一标签值的顶级字段值

选择前三个字段值和与每个值相关联的标签值

选择唯一标签值和时间窗口内的顶级字段值(按时间分组)

选择器函数的重要行为

按时间分组的时间戳

当使用带有 GROUP BY time() 子句的选择器函数时,大多数选择器 函数返回每个时间区间的起始边界的时间戳。 但是,带有 N 参数的函数指定了每个组返回的结果数量,保持每个返回点的原始时间戳。

返回每个时间间隔的开始时间
保持原始时间戳

选择器函数可能返回的点数少于预期

使用以下选择器函数并带有N参数的查询可能返回少于预期的点数。

如果 InfluxQL 分组或指定的标签键包含 X 个点或唯一标签值,并且 X 小于 N,则该函数返回 X 个结果,而不是每个分组或标签值的 N 个结果。

查看 FN(field_key, N) 的示例

查看 FN(field_key, tag_key, N) 的示例



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

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