2016-09-06 26 views
1

我在Azure上的分析数据运行一些测试工作运行此查询:Azure的数据流分析时间戳窗口结束

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

而且事实证明,在某些情况下,窗口结束时间戳是多的窗口幻灯片参数,但有时不。

例如,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如何决定何时打开第一个窗口。

非常感谢!

回答

4

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

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

翻滚跳频窗户是最好想,在逻辑上,作为划分的时间表本身。例如施加翻滚1分钟窗口将使结果;这些都是模为1分钟时间值仅出现,即下午2时下午2点01

注意,不是每1分钟边界必须有窗口结果,它依赖于计算。

滑动窗口可以在时间轴上的任何点产生输出,而不像翻滚和跳频的窗户,确实依赖于输入事件的时间戳。思考滑动窗口的最佳方法是该窗口可能会在任何输入事件时结束,并在该事件发生之前开始滑动幻灯片。换句话说,对于每个事件窗口,将包括在其之前或之前发生的所有事件。

希望这会有所帮助。

相关问题