如何消除 InfluxDB 聚合窗口查询中的最后一个残留数据点

How to eliminate last residual data point in InfluxDB aggregatewindow query

我有一个关于 InfluxDB 的查询问题;

我正在尝试汇总每天的数据并获取中位数。 日期被截断到一天的开始 (00:00:000) 但是,查询 returns 多一个没有截断到当天开始的最后一个数据; 如何将最后一个数据点的时间截断到一天的开始/或忽略最后一个值?

我的查询:

from(bucket: "metric")
  |> range(start: -30d, stop: 0d)
  |> filter(fn: (r) => r["_measurement"] == "metric")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["metric"] == "SOME_METRIC")
  |> aggregateWindow(every: 1d, fn: median, createEmpty: true)
  |> yield(name: "median")

我添加了查询结果,文字说明了我的情况

我想得到的积分是:

(假设今天是 17.02.2022);

15.02.2022 00:00:00:000 - 16.02.2022 00:00:00:000 - 17.02.2022 00:00:00:000

但是我得到了

15.02.2022 00:00:00:000 - 16.02.2022 00:00:00:000 - 17.02.2022 00:00:00:000 - 17.02.2022 05:30:27:437

提前致谢。

好的,我发现我必须在时间范围内给出确切的日期而不是 -d 符号。

from(bucket: "metric")
  |> range(start: 2022-01-16T00:00:00Z, stop: 2022-02-17T00:00:00Z)
  |> filter(fn: (r) => r["_measurement"] == "metric")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["metric"] == "SOME_METRIC")
  |> aggregateWindow(every: 1d, fn: median, createEmpty: true)
  |> yield(name: "median")

我也运行关注这个问题。我最终没有使用 aggregateWindow。相反,尝试像这样将 window 函数与聚合函数一起使用。

from(bucket: "metric")
  |> range(start: -30d, stop: 0d)
  |> filter(fn: (r) => r["_measurement"] == "metric")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["metric"] == "SOME_METRIC")
  |> window(every: 1d)
  |> median()
  |> group()
  |> yield(name: "median")

这似乎解决了我的问题...