watermark的作用

事件时间的推进

上游发过来的数据总是乱序的,有早有晚,然而有些动作是必须要明确的标记触发的,比如窗口计算。

那么,此时就需要一个水位线来推进事件时间

比如,系统最大时间-时间间隔

java 复制代码
stream.assignTimestampsAndWatermarks(
  WatermarkStrategy
    .<Event>forBoundedOutOfOrderness(Duration.ofSeconds(10))
    .withTimestampAssigner((event, ts) -> event.getEventTime())
);

表示系统允许最大乱序为 10 秒。

  • Flink 在内部生成 Watermark 的公式为:Watermark = 当前观察到的最大事件时间 - 10 秒

  • 只要比这个 Watermark 更早的事件,就被认为是"已经延迟太久"的数据,可能被丢弃或作为迟到数据处理。

多流操作的协同​

​​双流 Join 的完整性保证​​:在双流 join或 coProcessFunction中,Watermark 用于对齐两个流的事件时间。例如:

  • 流 A 的 Watermark = 10:05
  • 流 B 的 Watermark = 10:00

下游算子以 min(10:05, 10:00) = 10:00作为当前 Watermark,确保仅当两流数据均推进到 10:00后才输出匹配结果,避免数据丢失 。

​​乱序数据处理​​:通过取各输入流的最小 Watermark,确保慢速流的数据不被快速流覆盖

相关推荐
得物技术12 小时前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子13 小时前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1231 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能1 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
ApacheSeaTunnel1 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574091 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf
极光代码工作室1 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
秋名山码民1 天前
Graph RAG 深度解析:从向量检索到知识推理的技术演进
大数据·人工智能·rag
m0_380167141 天前
面向开发者的Top10加密货币数据API(2026年最新)
大数据·人工智能·区块链