【问题标题】:InfluxDB Flux join seriesInfluxDB Flux 连接系列
【发布时间】:2021-05-10 13:49:13
【问题描述】:

我在 influxdb 中有以下数据

server,operation=ADD queryMs=7.9810 1620608972904452000
server,operation=GET queryMs=12.2430 1620608972909339200
server,operation=UPDATE queryMs=11.5780 1620608972909655400
server,operation=ADD queryMs=11.2460 1620608972910445700
server,operation=GET queryMs=15.0620 1620608972911305000
etc...

所以在我的图表中,我看到了三个系列

我想实现一个系列的所有operations。

我尝试|> group(columns: ["_field"]),这是我需要的,但是查询非常慢!

from(bucket: "initial")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "server")
  |> filter(fn: (r) => r["_field"] == "queryMs")
  |> group(columns: ["_field"])
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

我的问题有什么快速解决方案吗?

【问题讨论】:

    标签: influxdb influxdb-2


    【解决方案1】:

    这样会更快

    union(tables: [
      from(bucket: "initial")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "server")
        |> filter(fn: (r) => r["_field"] == "queryMs")
        |> filter(fn: (r) => r["operation"] == "GET")
        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false),
      from(bucket: "initial")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "server")
        |> filter(fn: (r) => r["_field"] == "queryMs")
        |> filter(fn: (r) => r["operation"] == "ADD")
        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false),
      from(bucket: "initial")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "server")
        |> filter(fn: (r) => r["_field"] == "queryMs")
        |> filter(fn: (r) => r["operation"] == "UPDATE")
        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false),
      ])
      |> drop(columns:["operation"])
      |> sort(columns: ["_time"], desc: false)
      |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
      |> yield(name: "mean")
    

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 2019-08-08
      • 2018-08-03
      • 2017-10-12
      • 1970-01-01
      相关资源
      最近更新 更多