flink处理迟到数据

轻微乱序

WatermarkStrategy

.forBoundedOutOfOrdernessEvent(Duration.ofMinutes(5))

.withTimestampAssigner((event, _) => event.eventTime)

// 降低水位线的推进

窗口状态保留 等待晚点的数据

stream

.keyBy(_.userId)

.window(TumblingEventTimeWindows.of(Time.minutes(10)))

.allowedLateness(Time.minutes(5))

.reduce(...)

//使用 allowedLateness 窗口已经触发后,仍然允许一段时间内的迟到数据更新窗口结果

// 这会导致窗口状态清理延迟 状态变大

侧数据流收集后单独处理

val lateTag = new OutputTagEvent("late-data")

val result = stream

.keyBy(_.userId)

.window(TumblingEventTimeWindows.of(Time.minutes(10)))

.allowedLateness(Time.minutes(5))

.sideOutputLateData(lateTag)

.reduce(...)

val lateStream = result.getSideOutput(lateTag)

这些数据可以用于:

  • 落库留痕。
  • 发送告警。
  • 离线补偿。
  • 人工排查。
  • 回灌重算。
相关推荐
IT研究室3 小时前
最新大数据毕业设计选题推荐-基于大数据的电商与本地服务消费评论数据可视化分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·课程设计
大大大大晴天️4 小时前
从 HDFS 到对象存储:计算存储分离如何重塑云原生大数据底座
大数据·云原生
大大大大晴天14 小时前
从 HDFS 到对象存储:计算存储分离如何重塑云原生大数据底座
大数据
用户3610588626121 天前
SparkStreaming 之 updateStateByKey 算子详解及代码实现
大数据·spark
咖啡屋和酒吧1 天前
“隐性肩颈紧张”正在透支精力|没有酸痛,不代表肩颈处于健康状态
大数据·精选
港股研究社1 天前
专注履约底座,顺丰同城在即时零售效率时代提升增长动能
大数据·人工智能
AI_yangxi1 天前
短视频矩阵系统选哪家
大数据·人工智能·矩阵
lupai1 天前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
大模型丫丫2 天前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器