看下图: 为啥只有一个触发, WaterMark 时间 >= window结束时间 第一条日志 时间16:25:24 正好在 window [16:25:20 16:25:25) 里面,所以触发了,这里设置的水印延迟时间为10s 。
最后一条数据为什么没有触发,因为这个时候 window [16:25:25 16:25:30),水印时间已经来到; 16:25:27 ,到达了第二条日志时间,然而
WaterMark 时间(16:25:27) < window结束时间(16:25:30) ,不触发
所以要触发水印,总结就是为2个条件:
1)watermark时间 >= window_end_time
2)在[window_start_time,window_end_time)中有数据存在
同时满足了以上2个条件,window才会触发。
watermark是一个全局的值,不是某一个key下的值,所以即使不是同一个key的数据,其warmark也会增加.