关于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

虽然watermarker可以有效的防止窗口的数据的丢失,但是却增加了数据的延迟

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值