Flink实现准确和高效流处理的关键问题

时间相关:
时间相关

Watermark 水位线

  • 水位线是插入到数据流中的一个标记,可以认为是一个特殊的数据。
  • 水位线主要的内容是一个时间戳,用来表示当前事件时间的进展
  • 水位线是基于数据的时间戳生成的。
  • 水位线的时间戳必须单调递增,以确保任务的事件时间时钟一直向前推进,进展
  • 水位线可以通过设置延迟,来保证正确处理乱序数据。
  • 一个水位线 Watermark(t),表示在当前流中事件时间已经达到了时间戳 t,这代表 t之前的所有数据都到齐了,之后流中不会出现时间戳 t‘ ≤ t 的数据。

Watermark 多并行度下的生成、传递

生成:
  • 间歇性更新(punctuated watermarks):
    遇到新事件后更新

With punctuated watermarks, Flink calls checkAndGetWatermark() on each new event, i.e. right after calling assignWatermark(). An actual watermark is emitted only if checkAndGetWatermark() returns a non-null value which is greater than the last watermark.
来自stackoverflow回答

  • 周期性更新
    定期更新

With periodic watermarks, Flink calls getCurrentWatermark() at regular interval, independently of the stream of events.

设置周期性更新的时间


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值