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)
这个页面有帮助吗?
感谢您的反馈!