关于structured streaming和flink中的watermark理解

structured streaming和flink中的watermark指的是一个意思,顾名思义,就是提高数据的水位线,下面以structured streaming为例,说说小编对watermark的理解

1、如图所示,代表着每隔五分钟处理过去十分钟的数据,即窗口长度是十分钟,滑动间隔是五分钟,watermark的值是十分钟

2、如图中,12:15~12:20这个batch获取的数据共4条,其中12:15和12:21是正常到达Spark的,而12:08和12:13这两条是延迟到达Spark,这个窗口中上一个batch计算得到的wm=batch最大的event-time 12:14 减去 设定的 延迟阈值 10分钟  = 12:04,12:00~12:10,12:05~12:15这两个窗口的最大值大于vm,所以12:00~12:10,12:05~12:15这两窗口不会被触发执行,所以12:08和12:13这两条数据会被放到对应的窗口中去执行

    

     如图中,12:25分触发时,上一个batch 计算得到的wm=batch最大的event-time 12:21 减去 设定的 延迟阈值 10分钟  = 12:11分,因为12:00~12:10这个窗口的最大值已经全部小于wm了,所以,该窗口的值从Result Table输出到Kafka

     同理,12:30分触发时,上一个batch 计算得到的wm=batch最大的event-time 12:26 减去 设定的 延迟阈值 10分钟  = 12:16分,因为12:05~12:15这个窗口的最大值已经全部小于wm了,所以,该窗口的值从Result Table输出到Kafka

   

猜你喜欢

转载自blog.csdn.net/qq_40651753/article/details/86504383