浅谈Flink的Watermark机制

  • 什么是watermark?
    watermark对应的中文是水位水位线,用来判断一批数据是否到达的标识。

  • 为什么要有watermark?
    在这里插入图片描述
    在真实的数据传输过程中,数据不一定按照其产生的时间顺序的到达,可能会是乱序的或者是延迟的。对于延迟的数据我们的程序不可能一直等待下去,所以要设置一个最大的等待时间,也就是watermark的概念,当等于watermark(t)的时间戳的数据来了,我们认为小于等于t的数据都已经到了,从而执行数据处理操作。

  • 如何使用watermark
    当数据都是按顺序到达时,没有必要设置watermark。
    但数据的到达有延迟存在时,就有必要使用watermark了。
    flink中设置watermark有两种方法:
    1.周期性的生成 Periodic
    2.根据某些特定事件的发生来生成 Punctuated

    flink中提供了两个用于设置watermark的预定义实现类
    1.AscendingTimestampExtractor 适用于事件时间递增
    2.BoundedOutOfOrdernessTimestampExtractor 适用于乱序但最大延迟时间已知

想深入了解更多关于时间和watermark的知识,可以参考

http://wuchong.me/blog/2018/11/18/flink-tips-watermarks-in-apache-flink-made-easy/这篇网上博文,谢谢。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值