我正在使用 window(SlidingEventTimeWindows.of(Time.seconds(120), Time.seconds(1)))
滑动窗口用于实时数据流。我也在使用这个界面 AssignerWithPeriodicWatermarks
提取时间戳并分配水印。我正在应用自定义方法 apply()
在有Windows的小溪上。
在这个场景中,什么会触发窗口求值( apply()
执行),是每1秒发生一次。哪一个等于滑动窗口,还是在遇到流中的水印后?
我正在使用 window(SlidingEventTimeWindows.of(Time.seconds(120), Time.seconds(1)))
滑动窗口用于实时数据流。我也在使用这个界面 AssignerWithPeriodicWatermarks
提取时间戳并分配水印。我正在应用自定义方法 apply()
在有Windows的小溪上。
在这个场景中,什么会触发窗口求值( apply()
执行),是每1秒发生一次。哪一个等于滑动窗口,还是在遇到流中的水印后?
1条答案
按热度按时间lnvxswe21#
当窗口的结束时间戳小于当前水印时,对其进行求值。当窗口操作符接收到新的水印时,它将检查所有活动窗口,并完成所有结束时间早于新水印的窗口。
如果有一个滑动1秒的窗口和大约每5秒到达一次的水印,则每个水印将触发对5个窗口的求值。您可以将水印视为设置应用程序时钟的机制。如果操作员不知道时钟提前,它将不执行计算。