文档文档

查询字段和标签

此页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。 请参阅等效的 InfluxDB v2 文档: 查询字段和标签

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

filter() 函数

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

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

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() 定义您的 bucket(数据桶)
  2. 使用 range() 按时间限制查询结果。
  3. 使用 filter() 确定要输出哪些数据行。
from(bucket: "db/rp")
  |> range(start: -1h)
  |> filter(fn: (r) =>
      r._measurement == "example-measurement" and
      r._field == "example-field" and
      r.tag == "example-tag"
  )

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版现已公开发布 Alpha 版本

InfluxDB 3 开源版现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

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

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

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