查询字段和标签
此页面记录了早期版本的 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 查询:
- 使用
from()来定义你的 bucket。 - 使用
range()根据时间限制查询结果。 - 使用
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"
)