跳跃窗口(Azure 流分析)

翻转窗口不同,跳跃窗口模型计划重叠窗口。 跳跃窗口规范由三个参数组成: 时间单位窗口大小 (每个窗口持续的时间) 和 跃点大小 (每个窗口相对于上一个窗口向前移动的量) 。 此外, offsetsize 可用作可选的第四个参数。 请注意,滚动窗口无非就是“跃程”等于“大小”的跳跃窗口。

下图显示了包含一系列事件的流。 每个框表示一个跳跃窗口以及被视为该窗口一部分的事件,假设条件为“跃程”为 5,“大小”为 10。

流分析跳跃窗口关系图

语法

{HOPPINGWINDOW | HOPPING} ( timeunit  , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit  , windowsize ) , Hop (timeunit  , windowsize ), [Offset(timeunit  , offsetsize)])  
  

注意

可按上述两种方式使用跳跃窗口。 如果窗口大小和跃程具有相同的时间单位,则无法 Duration 和 Hop 函数就可以使用该窗口。 还可以将 Duration 函数与其他类型的窗口结合使用,以指定窗口大小。

参数

timeunit

windowsizehopsize 的时间单位。 下表列出了所有有效的 时间单位 参数。

时间单位 缩写形式
day dd、d
hour hh
minute mi、n
第 2 个 ss、s
毫秒 ms
微秒 mcs

windowsize

描述窗口大小的大整数。 windowsize 是静态的,不能在运行时动态更改。

在所有情况下,窗口的最大大小为 7 天。

hopsize

描述跃点大小的大整数。

offsetsize

默认情况下,跳跃窗口在窗口末尾是包含的,在开头是独占的(例如,12:05 PM – 1:05 PM)窗口将包含恰好发生在下午 1:05 的事件,但不包括发生在 12:05:05:PM 的事件 (这些事件将是 12:00 PM - 01:00 PM 窗口) 的一部分。
Offset 参数可用于更改行为,并在窗口开头包含事件,并排除在最后发生的事件。

示例

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))  
  

时间注意事项

对于跳跃窗口,每个窗口操作都输出窗口末尾的事件 (,这种情况发生在每个跃点大小) 。 Azure 流分析的窗口在窗口开始时间打开,并在窗口结束时间关闭。 例如,如果有从凌晨 12:00 到凌晨 12:05 的 5 分钟时段,则时间戳大于凌晨 12:00 且时间戳最长为 12:05(包括凌晨 12:05)的事件都将包含在此窗口中。 此窗口的输出将为单个事件,该事件基于与等于窗口结束时间的时间戳一起使用的聚合函数。 可以使用别名使用 System.Timestamp () 属性在 SELECT 语句中投影窗口输出事件的时间戳。