Flink Watermark机制

1. Watermark是什么?用来解决什么问题?

Flink里涉及两个重要的时间,Processing Time(处理时间) 和 Event Time(事件时间),而支持事件时间的流处理器需要一种方法来度量事件时间的进度。例如,当事件时间超过一小时后,需要通知构建每小时窗口的窗口操作符,以便该操作符可以关闭正在运行的窗口。怎么确定一个窗口是否已经结束,这在流式数据处理系统中并非一个很容易解决的问题。如果窗口是基于处理时间的,那么问题确实容易解决,因为处理时间是完全基于本地时钟的;但是如果窗口基于事件时间,由于分布式系统中消息可能存在延迟、乱序到达的问题,即便系统已经接收到窗口边界以外的数据了,也不能确定前面的所有数据都已经到达了。水位线(Watermark)机制就是用于解决这个问题的。

Watermark就是在使用事件时间时在内部度量进度的一种机制(本质就是个时间戳,详见org.apache.flink.streaming.api.watermark.Watermark extends StreamElement),换句话说,在处理使用事件时间属性的数据流时,Watermark 是系统测量数据处理进度的一种方法。Watermaker作为数据流的一部分携带着一个时间戳t。一个Watermark(t)表示在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sf_www

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值