aggregateWindow() 函数
aggregateWindow() 通过将数据分组到固定时间窗口并将聚合或选择器函数应用于每个窗口来对数据进行降采样。
除了指定的 column 之外,组键中不存在的所有列都将从输出表中删除。这包括 _time。aggregateWindow() 使用 timeSrc 和 timeDst 参数为聚合值分配时间。
aggregateWindow() 需要输入数据中包含 _start 和 _stop 列。使用 range() 分配 _start 和 _stop 值。
当 timeColumn(默认为 _time)不在组键中时,此函数旨在使用。如果 timeColumn 在 组键中,则生成的输出令人困惑,通常没有用处。
按日历月和年进行降采样
every、period 和 offset 参数支持所有有效的持续时间单位,包括日历月 (1mo) 和年 (1y)。
按周降采样
当按周 (1w) 窗口化时,周是使用 Unix 纪元 (1970-01-01T00:00:00Z UTC) 确定的。Unix 纪元是在星期四,因此所有计算的周都从星期四开始。
函数类型签名
(
<-tables: stream[D],
every: duration,
fn: (<-: stream[B], column: A) => stream[C],
?column: A,
?createEmpty: bool,
?location: {zone: string, offset: duration},
?offset: duration,
?period: duration,
?timeDst: string,
?timeSrc: string,
) => stream[E] where B: Record, C: Record, D: Record, E: Record
有关更多信息,请参阅 函数类型签名。
参数
every
(必需)窗口之间的时间间隔持续时间。
period
窗口的持续时间。默认为 every 值。
period 可以为负数,表示开始和停止边界已反转。
offset
窗口边界偏移的持续时间。默认为 0s。
offset 可以为负数,表示偏移在时间上向后移动。
fn
(必需)应用于每个时间窗口的聚合或选择器函数。
location
用于确定时区的位置。默认为 location 选项。
column
要操作的列。
timeSrc
用作聚合值新时间值来源的列。默认为 _stop。
timeDst
用于存储聚合值的时间值的列。默认为 _time。
createEmpty
为空窗口创建空表。默认为 true。
注意: 当使用 createEmpty: true 时,聚合函数返回空表,但选择器函数不返回。按照设计,选择器会删除空表。
tables
输入数据。默认为管道转发数据 (<-)。
示例
使用带有默认参数的聚合函数
data
|> aggregateWindow(every: 20s, fn: mean)
指定聚合函数的参数
要使用未为 aggregateWindow() 的必需参数提供默认值的函数,请定义一个匿名函数,其中包含 column 和 tables 参数,这些参数将表管道转发到聚合或选择器函数中,并定义所有必需的参数
data
|> aggregateWindow(
column: "_value",
every: 20s,
fn: (column, tables=<-) => tables |> quantile(q: 0.99, column: column),
)
按日历月降采样
data
|> aggregateWindow(every: 1mo, fn: mean)
按星期一作为开始的日历周降采样
Flux 从 Unix 纪元(星期四)开始递增周。因此,默认情况下,所有 1w 窗口都从星期四开始。使用 offset 参数将每周窗口的开始时间偏移到所需的工作日。
| 周开始 | 偏移量 |
|---|---|
| 星期一 | -3d |
| 星期二 | -2d |
| 星期三 | -1d |
| 星期四 | 0d |
| 星期五 | 1d |
| 星期六 | 2d |
| 星期日 | 3d |
data
|> aggregateWindow(every: 1w, offset: -3d, fn: mean)
此页是否对您有帮助?
感谢您的反馈!