窗口结束的Azure Stream Analytics时间戳

时间:2016-09-06 15:30:42

标签: streaming azure-stream-analytics windowing

我正在运行此查询的Azure Stream Analytics上运行一些测试作业:

SELECT System.Timestamp AS ts, Collect()
INTO output−queue
FROM input-hub TIMESTAMP BY tapp
GROUP BY HoppingWindow(second , 4 , 2)

并且事实证明,在某些情况下,窗口结束的时间戳是窗口 slide 参数的倍数,但有时不是。

例如,使用slide = 2,您可以在此窗口中关闭时间戳:

2016-08-04T10:36:40.0000000Z
2016-08-04T10:36:42.0000000Z
2016-08-04T10:36:44.0000000Z
2016-08-04T10:36:46.0000000Z
2016-08-04T10:36:48.0000000Z

或者,在slide = 5

的情况下
2016-08-04T14:55:15.0000000Z
2016-08-04T14:55:20.0000000Z
2016-08-04T14:55:25.0000000Z
2016-08-04T14:55:30.0000000Z

即使对于不同的幻灯片值(例如2,3,4,6,...)也是如此。而且,总是是真的!无论什么时候开始工作。

有些值(例如7,11)不符合此规则。

有人可以回答为什么会这样吗? 我想知道Azure SA如何决定何时打开第一个窗口。

非常感谢你!

1 个答案:

答案 0 :(得分:4)

有不同种类的窗口(有关详细信息,请参阅here)。

首先,窗口开始/结束不依赖于作业开始时间。

从逻辑上讲,

翻滚跳跃窗口最好将其视为对时间线本身进行分区。例如,应用 1分钟的翻滚窗口将使结果仅出现在1分钟mod的时间值,即 2:00 pm 2:01 pm < / em>等。

请注意,并非每1分钟边界必须有窗口结果,而是取决于计算。

滑动窗口可以在时间轴上的任何位置生成输出,与翻滚和跳跃窗口不同, 取决于时间戳的时间戳输入事件。考虑滑动窗口的最佳方法是窗口可以在任何输入事件处结束,并在该事件之前开始 slide 一段时间。换句话说,对于每个事件窗口,将包括在其之前或之前发生的所有事件。

希望这有帮助。