Flink/Blink 原理漫谈(一)时间,watermark详解

本文深入探讨Flink/Blink中的时间概念,包括Event Time、Ingestion Time和Processing Time。重点讲解Watermark机制,用于处理数据乱序问题,保证Event Time的一致性。通过实例解释Watermark如何触发窗口关闭,以及在多流处理中的单调递增策略。

系列文章目录

Flink/Blink 原理漫谈(零)运行时的组件

Flink/Blink 原理漫谈(一)时间,watermark详解

Flink/Blink 原理漫谈(二)流表对偶性和distinct详解

Flink/Blink 原理漫谈(三)state 有状态计算机制 详解

Flink/Blink 原理漫谈(四)window机制详解

Flink/Blink 原理漫谈(五)流式计算的持续查询实现 详解

Flink/Blink 原理漫谈(六)容错机制(fault tolerance)详解



一、 时间

一共有三种时间:event time,ingestion time,processing time

Event time:事件发生的时间
Ingestion time:数据进入flink的时间
Processing time:执行操作算子的本地系统时间
在这里插入图片描述
Watermark就是基于Event Time产生的,Blink系统正是利用Event Time和Watermark机制处理数据乱序问题的。Processing Time并不能提供确定性,因为它容易受到Event到达系统的速度(例如来自消息队列)以及记录在Blink系统内部的处理先后顺序的影响。Ingestion Time在概念上位于Event Time和Processing Time之间。

目前Blink SQL 层面向用户开发的时间类型是 Event Time和Processing Time.

二、 watermark

概念

通常来说,数据都是按照event time进入operator中的,但是由于分布式,网络延迟等等原因,先发生的事情反而会在后面传入。
在这里插入图片描述
这就出问题了啊,如果我们只是根据event time来决定是否关闭当前窗口,就可能永远也无法知道什么时候应该关闭当前窗口,因为我们总是无法明确什么时候,当前窗口的所有数据都到位了。这时候就要引入watermarks的概念。

很多网上的文章描述的wa

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值