0

因此,我试图找到有关更复杂的 Flux 查询的任何文档,但经过几天的搜索,我仍然迷路了。我希望能够计算一周中每个小时的平均值,然后当新数据进来时,我想检查它是否偏离该小时的 x 个标准偏差。

基本上我希望有 24x7 数组字段,每个字段代表过去 1 年一周中每个小时的平均值/中值。然后我想将每个小时的最后几天值与这些平均值进行比较并报告错误。我不明白如何计算这些平均值。是否有一些关于 Flux 的隐藏的大量文档?

我真的不需要一个完整的解决方案,只是一些方向会很好。就像,在标准库或其他东西中是否有一些实用功能

编辑:经过一番阅读,看起来我需要做的就是使用 window 和 aggregateWindow 函数,但我还没有找到确切的方法

4

1 回答 1

0

好的,所以,这对我有用。需要进行一些清理,但获得每小时+工作日成功分组的值以及所有值的平均值

import "date"
tab1 = from(bucket: "qweqwe")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "asdasd")
  |> filter(fn: (r) => r["_field"] == "reach")
  |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)


mapped = tab1 
  |> map(fn: (r) => ({ r with wd: string(v: date.weekDay(t: r._time)), h: string(v: date.hour(t: r._time)) }))
  |> map(fn: (r) => ({ r with mapped_time: r.wd + " " + r.h }))

grouped = mapped
  |> group(columns: ["mapped_time"], mode: "by")
  |> mean()
  |> group() 
  |> toInt()

  |> yield()
于 2020-10-26T11:58:09.197 回答