Structured Streaming和flink的watermark

本文深入探讨了Structured Streaming和Flink的watermark机制,用于处理流式数据中的乱序问题。Structured Streaming在特定场景下依赖watermark限制状态增长并尽早输出结果。Flink则区分Event Time、Ingestion Time和Processing Time,并提供Periodic和Punctuated两种Watermark生成方式。Flink的allowedLateness允许一定延迟接收迟到数据,确保窗口正确触发。
摘要由CSDN通过智能技术生成

Structured Streaming和flink都支持流式操作,支持对乱序数据的处理,都引入了watermark的概念,watermark都是系统能处理的乱序数据的最早的时间,但二者的具体表现也不尽相同。

1、Structured Streaming的watermark机制

  • (a+) 在对 event time 做 window() + groupBy().aggregation() 即利用状态做跨执行批次的聚合,并且

  • (b+) 输出模式为 Append 模式或 Update 模式

时,Structured Streaming 将依靠 watermark 机制来限制状态存储的无限增长、并(对 Append 模式)尽早输出不再变更的结果。

如果既不是 Append 也不是 Update 模式,或者是 Append 或 Update 模式、但不需状态做跨执行批次的聚合时,则不需要启用 watermark 机制。

watermark的更新

1)spark任务执行以集群时间为准,window操作处理当前时间段(与event time无关)收到的数据,如图中每隔5min进行一次window操作,window的长度是10min。

2)watermark在每个window操作进行时更新,为当前收到的最大的event time-允许的延迟时间,如:图中12:15的batc

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值