aggregateWindow() function
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 纪元开始递增周数,Unix 纪元是星期四。 因此,默认情况下,所有 1w
窗口都从星期四开始。 使用 offset
参数将每周窗口的开始时间移动到所需的一周中的某一天。
周开始 | 偏移量 |
---|---|
星期一 | -3d |
星期二 | -2d |
星期三 | -1d |
星期四 | 0d |
星期五 | 1d |
星期六 | 2d |
星期日 | 3d |
data
|> aggregateWindow(every: 1w, offset: -3d, fn: mean)
此页面对您有帮助吗?
感谢您的反馈!