【问题标题】:InfluxQL query to Flux conversionInfluxQL 查询到 Flux 转换
【发布时间】:2022-08-17 18:14:30
【问题描述】:

我想从 InfluxQL 切换到 Flux,但现在我想转换查询:

SELECT sum(\"execution_duration\") / sum(\"interval_duration) as \"Availability\" FROM \"data-oee\" WHERE $timeFilter GROUP BY time($time_interval)

到通量语言,但还不能完全完成。我在这里做错了什么?

我的通量查询:

from(bucket: \"Dashboard\")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r[\"_measurement\"] == \"oee-data\")
  |> filter(fn: (r) => r[\"machine\"] == \"ilv\")
  |> cumulativeSum(columns: [\"duration\"])
  |> cumulativeSum(columns: [\"production_duration\"])
  |> group(columns: [\"_time\"])
  |> aggregateWindow(every: 1d, fn: mean, createEmpty: false)
  |> yield(name: \"mean\")

我有错误:

 error @5:44-5:78: missing required argument tables
  • table 参数应该来自管道 (|>),我似乎找不到语法错误。你用的是什么版本的influx?你为什么按时间列分组?

标签: sql database influxdb flux


【解决方案1】:

SELECT sum("execution_duration") / sum("interval_duration") as "Availability" FROM "data-oee" WHERE $timeFilter GROUP BY time($time_interval)

在这个流入查询中,我假设您仅使用查询中写入的数据,例如使用名为“data-oee”的测量中的两个列字段作为“execution_duration”和“interval_duration”,因此,将“_field”列基于对于存储在其中的不同值,我们必须使用 pivot() 函数,然后使用任何计算(如'+'/'-'/'*'/'/')将两个查询的数据分组到一列中,你需要使用 map() 函数。查询将类似于:

from(bucket: "Dashboard")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "oee-data")
  |> filter(fn: (r) => r["machine"] == "ilv")
  |> filter(fn: (r) => r["_field"] == "execution_duration" or r["_field"] == "interval_duration" )
  |> group(columns: ["_field"])
  |> aggregateWindow(every: 1d, fn: sum, createEmpty: false)
  |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
  |> map(fn: (r) => ({r with _value: (r.execution_duration/r.interval_duration)}))  
  |> yield(name: "sum")

我无法理解的是,当您必须计算列中值的总和时,为什么要在 aggregatewWindow 中使用均值函数?可能这种通量语法会帮助某人..我很难调试它。

稍后谢谢我;)

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 2021-01-15
    • 2021-05-10
    • 2021-12-02
    • 2017-09-18
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多