InfluxDB Flux - 过滤字段与值匹配的地方
InfluxDB Flux - Filter where field matches value
我正在使用 InfluxDB with Grafana,我有一个名为 items
的测量,其中包含一些标签和一个名为 itemType
的字段。我需要过滤 itemType
是某个字符串的行。以下 InfluxQL 查询正是我所需要的:
SELECT * FROM "items" WHERE "itemType" = 'example'
如何在 Flux 中执行相同的操作?
我目前有以下查询,除了按字段过滤外,它执行所有操作:
from(bucket: "dbname/autogen")
|> range(start: 2020-10-12T01:56:34Z, stop: 2020-10-12T02:54:10Z)
|> filter(fn:(r) => r._measurement == "items")
|> aggregateWindow(every: 5m, fn: count)
但是用 filter(fn:(r) => r._measurement == "items" and r.itemType == "example")
returns 替换 filter
函数没有结果,即使上面的 InfluxQL 查询在 InfluxDB CLI 中使用 return 数据。
如果 itemType 是一个标签,您指定的流量查询将起作用,但是,因为它是一个字段,使查询起作用的方法之一是在该字段上设置条件名称及其值如下:
from(bucket: "dbname/autogen")
|> range(start: 2020-10-12T01:56:34Z, stop: 2020-10-12T02:54:10Z)
|> filter(fn:(r) => r._measurement == "items" and r._field == "itemType" and r._value == "example")
|> aggregateWindow(every: 5m, fn: count)
我正在使用 InfluxDB with Grafana,我有一个名为 items
的测量,其中包含一些标签和一个名为 itemType
的字段。我需要过滤 itemType
是某个字符串的行。以下 InfluxQL 查询正是我所需要的:
SELECT * FROM "items" WHERE "itemType" = 'example'
如何在 Flux 中执行相同的操作?
我目前有以下查询,除了按字段过滤外,它执行所有操作:
from(bucket: "dbname/autogen")
|> range(start: 2020-10-12T01:56:34Z, stop: 2020-10-12T02:54:10Z)
|> filter(fn:(r) => r._measurement == "items")
|> aggregateWindow(every: 5m, fn: count)
但是用 filter(fn:(r) => r._measurement == "items" and r.itemType == "example")
returns 替换 filter
函数没有结果,即使上面的 InfluxQL 查询在 InfluxDB CLI 中使用 return 数据。
如果 itemType 是一个标签,您指定的流量查询将起作用,但是,因为它是一个字段,使查询起作用的方法之一是在该字段上设置条件名称及其值如下:
from(bucket: "dbname/autogen")
|> range(start: 2020-10-12T01:56:34Z, stop: 2020-10-12T02:54:10Z)
|> filter(fn:(r) => r._measurement == "items" and r._field == "itemType" and r._value == "example")
|> aggregateWindow(every: 5m, fn: count)