我正在使用window(SlidingEventTimeWindows.of(Time.seconds(120), Time.seconds(1)))
滑动窗口进行实时数据流传输。我还使用接口AssignerWithPeriodicWatermarks
来提取时间戳并分配水印。我在窗口流上应用自定义方法apply()
。
在这种情况下,触发窗口评估(apply()
执行)的内容是每1秒发生一次。这等于窗口的滑动还是在遇到流中的水印之后?
答案 0 :(得分:1)
当窗口的结束时间戳小于当前水印时,将对其进行评估。当窗口操作员收到新的水印时,它会检查所有活动的窗口并完成所有窗口的结束时间在新水印之前。
如果你有一个滑动1秒的窗口和大约每五秒钟到达的水印,每个水印将触发五个窗口的评估。您可以将水印视为设置应用程序时钟的机制。如果操作员不知道时钟提前,则不会执行计算。