InfluxDB:Flux 与 InfluxQL 图表差异

问题描述 投票:0回答:2

我正在尝试从 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 的指南,但我无法获得清晰的图表。

我缺少一些非常基本的东西吗?

请注意,这两个图表是在同一数据库上生成的。

grafana influxdb flux influxql
2个回答
1
投票

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查询中按时间分组的事实)。


0
投票

(很抱歉使用答案来提问,但我无法在评论中添加图形。)

我看到@Matteo 的答案是如何工作的,但在我的例子中,标签(001、002、003)标识连续测量的块,但每个块都有不连续性。当在没有“ |> group(columns: []) ”选项的情况下绘制时,每个测量块的绘制都没有连接线。当我添加“ |> group(columns: [])”时,标签消失,但现在每个“块”都用一条线连接。如何“折叠标签”,同时保留单独的(未连接的)“块”

没有块

© www.soinside.com 2019 - 2024. All rights reserved.