文档文档

查询字段和标签

使用 filter() 基于字段、标签或任何其他列值查询数据。 filter() 执行的操作类似于 InfluxQL 和其他类 SQL 查询语言中的 SELECT 语句和 WHERE 子句。

filter() 函数

filter() 具有一个 fn 参数,该参数需要一个 谓词函数,这是一个由一个或多个 谓词表达式 组成的匿名函数。 谓词函数评估每个输入行。 评估结果为 true 的行将包含在输出数据中。 评估结果为 false 的行将从输出数据中排除

// ...
    |> filter(fn: (r) => r._measurement == "example-measurement-name" )

fn 谓词函数需要一个 r 参数,该参数将每一行表示为 filter() 迭代输入数据。 行记录中的键值对表示列及其值。 使用点表示法或括号表示法来引用谓词函数中的特定列值。 使用 逻辑运算符 将多个谓词表达式链接在一起。

// Row record
r = {foo: "bar", baz: "quz"}

// Example predicate function
(r) => r.foo == "bar" and r["baz"] == "quz"

// Evaluation results
(r) => true and true

按字段和标签过滤

from()range()filter() 的组合代表了最基本的 Flux 查询

  1. 使用 from() 定义您的 存储桶
  2. 使用 range() 按时间限制查询结果。
  3. 使用 filter() 标识要输出的数据行。
from(bucket: "example-bucket")
    |> range(start: -1h)
    |> filter(fn: (r) => r._measurement == "example-measurement-name" and r.mytagname == "example-tag-value")
    |> filter(fn: (r) => r._field == "example-field-name")

此页内容是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。 您可以继续像现在这样使用它,代码无需任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。 加速扩展。

获取更新

InfluxDB 3 Core 是一款开源、高速、近实时数据引擎,可实时收集和处理数据,并将其持久化到本地磁盘或对象存储。 InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,从而实现更快的查询和优化的存储。 InfluxDB 3 Enterprise 的免费层级可供非商业家庭或业余爱好者使用。

有关更多信息,请查看