window() 函数
window()
使用常规时间间隔对记录进行分组。
该函数计算时间窗口,并将窗口边界存储在 _start
和 _stop
列中。_start
和 _stop
值根据行的 _time
值分配给行。
根据传递给 window()
的参数,单个输入行可以放入零个或多个输出表中。
当 timeColumn
(默认为 _time
)不在分组键中时,此函数旨在使用。如果 timeColumn
*在* 分组键中,则生成的输出令人困惑,通常没有用处。
按日历月和年划分窗口
every
、period
和 offset
参数支持所有有效的持续时间单位,包括日历月 (1mo
) 和年 (1y
)。
按周划分窗口
当按周 (1w
) 划分窗口时,周是使用 Unix 纪元(1970-01-01T00:00:00Z UTC)确定的。Unix 纪元是在星期四,因此所有计算的周都从星期四开始。
函数类型签名
(
<-tables: stream[A],
?createEmpty: bool,
?every: duration,
?location: {zone: string, offset: duration},
?offset: duration,
?period: duration,
?startColumn: string,
?stopColumn: string,
?timeColumn: string,
) => stream[B] where A: Record, B: Record
有关更多信息,请参阅 函数类型签名。
参数
every
窗口之间的时间间隔持续时间。
period
窗口的持续时间。默认为 every
值。
period
可以为负数,表示开始和停止边界已反转。
offset
窗口边界偏移的持续时间。默认为 0s
。
offset
可以为负数,表示偏移在时间上向后移动。
location
用于确定时区的位置。默认为 location
选项。
timeColumn
包含时间值的列。默认为 _time
。
startColumn
用于存储窗口开始时间的列。默认为 _start
。
stopColumn
用于存储窗口停止时间的列。默认为 _stop
。
createEmpty
为空窗口创建空表。默认为 false
。
tables
输入数据。默认为管道转发数据 (<-
)。
示例
将数据窗口化为 30 秒间隔
data
|> window(every: 30s)
每 20 秒窗口化一次,覆盖 40 秒周期
data
|> window(every: 20s, period: 40s)
按日历月窗口化
data
|> window(every: 1mo)
此页是否对您有帮助?
感谢您的反馈!