系列文章目录
Flink/Blink 原理漫谈(一)时间,watermark详解
Flink/Blink 原理漫谈(二)流表对偶性和distinct详解
Flink/Blink 原理漫谈(三)state 有状态计算机制 详解
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

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

被折叠的 条评论
为什么被折叠?



