当前位置: 首页 > news >正文

watermark的作用

事件时间的推进

上游发过来的数据总是乱序的,有早有晚,然而有些动作是必须要明确的标记触发的,比如窗口计算。
那么,此时就需要一个水位线来推进事件时间
比如,系统最大时间-时间间隔

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,确保慢速流的数据不被快速流覆盖

http://www.xdnf.cn/news/1135045.html

相关文章:

  • 使用YOLOv11实现水果类别检测:从数据到模型训练的全过程
  • 【SpringBoot】实战-开发接口-用户-注册
  • Java—异常Exception
  • 【技术追踪】基于检测器引导的对抗性扩散攻击器实现定向假阳性合成——提升息肉检测的鲁棒性(MICCAI-2025)
  • github上传大文件(多种解决方案)
  • Buffer Pool
  • 分布式系统高可用性设计 - 监控与日志系统
  • 能行为监测算法:低成本下的高效管理
  • LVS集群调度器
  • Python高级编程技巧探讨:装饰器、Patch与语法糖详解
  • 第六章 OBProxy 路由与使用运维
  • rLLM:用于LLM Agent RL后训练的创新框架
  • Git版本控制完全指南:从入门到精通
  • Nginx,MD5和Knife4j
  • NLP:LSTM和GRU分享
  • 人工智能之数学基础:神经网络之多样本矩阵参数求导
  • C++ - 仿 RabbitMQ 实现消息队列--sqlite与gtest快速上手
  • 光纤基础知识
  • lua(xlua)基础知识点记录一
  • IIS-网站报500.19错误代码0x8007000d问题解决
  • “重复”定义函数的睿智(Python/与ai助手“智普清言”深度交流)
  • Java后端开发核心笔记:分层架构、注解与面向对象精髓
  • java解析word文档
  • Linux 716 数据库迁移
  • x86版Ubuntu的容器中运行ARM版Ubuntu
  • 零基础学Vue3组件化开发
  • 统计功效是什么?
  • VR 污水厂初体验:颠覆传统认知​
  • 广州 VR 森林防火系统功能探究​
  • AI应用核心转向Context Engineering