我正在尝试从 InfluxQL 迁移到 Flux,但是当在图表中显示时,我得到了奇怪的结果,并且我无法解决它。
InfluxQL查询和图表:
SELECT mean("machine_temperature") FROM "machine" WHERE time >= 1677625200000ms and time <= 1679039209170ms GROUP BY time(20m) fill(null)
这与 Flux 中的基本版本相同:
from(bucket: "mybucket")
|> range(start: -30d, stop: -26d)
|> filter(fn: (r) => r["_measurement"] == "machine")
|> filter(fn: (r) => r["_field"] == "machine_temperature")
|> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
|> yield(name: "Mean")
但是在图表中我得到了多条堆叠线,每个标签具有不同的颜色。图表的各个部分之间也存在“间隙”,并且看起来已损坏。这是为什么?
我尝试阅读所有有关从 InfluxQL 迁移的指南以及所有有关 Flux 的指南,但我无法获得清晰的图表。
我缺少一些非常基本的东西吗?
请注意,这两个图表是在同一数据库上生成的。
Flux 手柄系列与 InfluxQL 不同。默认情况下,通量系列是“单独的”。这意味着任何未指定的 Flux 查询将始终按每个标签进行分组(例如在 InfluxQL 查询中添加
GROUB BY *
)。
如果您想复制 InfluxQL 查询,您应该这样做:
from(bucket: "mybucket")
|> range(start: 1677625200000000000, stop: 1679039209170000000)
|> filter(fn: (r) => r["_measurement"] == "machine")
|> filter(fn: (r) => r["_field"] == "machine_temperature")
|> group(columns: [])
|> aggregateWindow(every: 20m, fn: mean, createEmpty: false)
|> yield(name: "Mean")
group
语句告诉flux不要对任何标签进行分组(以复制您仅在InfluxQL查询中按时间分组的事实)。