Flink之数据乱序处理

文章介绍了Flink中时间语义的三种类型:EventTime,IngestionTime,ProcessingTime,并详细阐述了数据乱序的原因,特别是在EventTime场景下。Flink通过窗口计算来处理乱序,包括滚动窗口、滑动窗口和会话窗口。Watermark机制作为判断乱序和触发计算的关键,允许在一定延迟时间内处理迟到的数据,而更晚的数据则通过侧输出流进行处理。文章还讨论了水位线的设置和延迟时间的重要性。

一、数据为什么会乱序?

在了解为什么会乱序之前我们先来看一下在Flink中的时间语序。

1.1  Flink Time  时间语义

  • Event Time:事件产生的时间,它通常由事件中的时间戳描述。

  • Ingestion Time:事件进入Flink的时间。

  • Processing Time:事件被处理时当前系统的时间。

这三种时间的对应关系如下图所示:

1.2  数据乱序的产生

在使用EventTime处理Stream数据的时候就会遇到数据乱序的问题。流处理从Event(事件)产生,流经Source,再到Operator,这中间需要一定的时间。虽然大部分情况下,传输到Operator的数据都是按照Event Time顺序来的,但是也不排除因为网络延迟等原因导致乱序的产生。特别是使用kafka的时候,多个分区间无法保证数据的有序性。

那么Flink针对乱序数据是如何处理的呢?

二、Flink是如何处理乱序数据的?

故事时间到~    

学校准备春游,春游是大家小时候最爱的活动了。

小明班计划的发车时间是09:00~09:10。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值