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

(七)Flink Watermark

Flink 的 Watermark 是用来标识数据流中的一个时间点。Watermark 的设计是为了解决乱序数据处理的问题,尤其是涉及到多个分区的 Kafka 消费者时。在 Watermark 的作用下,即使某些数据出现了延迟到达的情况,也不会导致整个处理流程的中断。此外,Watermark 还能防止过期的数据被处理,从而提高了数据处理的准确性。

具体来说,Watermark 有以下两个主要的功能:

  • 解决乱序问题:通过设置 Watermark,可以确保处理过程不会因为等待数据而无限期地阻塞。这样,即使在数据出现延迟的情况下,也能及时处理后续的数据,而不是等到所有的数据都到达之后再开始处理。

  • 允许一定程度的延迟:Watermark 可以在一定程度上接受数据的延迟到达,但同时会有一个设定的最大延迟时间。当数据流中的事件时间戳大于等于水印加上这个最大延迟时间时,就会触发相应的计算操作。这样可以避免因长时间的延迟而导致的不必要的计算开销。

目录

Watermark 策略简介

Watermark 生成策略

1、内置策略

2、自定义 Watermark 策略

处理空闲数据源

Watermark 策略应用

总结


Watermark 策略简介

为了使用事件时间语义,Flink 应用程序需要知道事件时间戳对应的字段,通常通过使用 TimestampAssigner API 从元素中的某个字段去访问/提取时间戳。时间戳的分配与 Watermark 的生成是齐头并进的,其可以告诉 Flink 应用程序事件时间的进度。可以通过指定 WatermarkGenerator 来配置 Watermark 的生成方式。

使用 Flink API 时需要设置一个同时包含 TimestampAssigner 和 WatermarkGenerator 的 Watermark


http://www.mrgr.cn/news/6781.html

相关文章:

  • JVM系列--运行时数据区
  • 如何将sqlite3中数据导入到mysql中
  • QT 目录
  • LabVIEW中CANopen Read SDO.vi 和 CANopen Read Write CAN Frame.vi区别
  • 2. Java 中的 List 接口有哪些实现类?
  • 文献阅读:单细胞分辨率下小鼠大脑衰老的分子和空间特征
  • el-table中el-select俩列共用同一数据并且选择不能相同
  • ActiViz实战:ActiViz与VTK的差异踩坑点集合(一)
  • 贪心算法-最大容量问题
  • Java二十三种设计模式-责任链模式(17/23)
  • 无法找到模块“vuex”的声明文件。“../node_modules/vuex/dist/vuex.mjs”隐式拥有 “any“ 类型。
  • 嵌入式智能移动机器人导航系统:状态空间控制算法、路径规划算法、PID控制算法(代码示例)
  • vue mapActions的使用
  • 泛微E9如何更新缓存
  • Adobe Illustrator矢量绘图软件win/mac软件下载安装
  • LeetCode - 315 计算右侧小于当前元素的个数(Java JS Python C C++)
  • Milvus实践(5) ---- 从attu2.4x窥探Milvus数据结构变化及原理
  • 2024小学生古诗文大会暑期备考:吃透历年真题和知识点(持续)
  • Jmeter 性能测试实战教程
  • 无人机随车飞行技术详解