Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器

传送门:Flink 系统性学习笔记


Flink 1.10

这篇文章主要从源码角度讲一下 Flink DataStream 中带 Watermark 生成的时间戳分配器。

我们通常通过 DataStream 的 assignTimestampsAndWatermarks 方法分配时间戳并生成 Watermark。assignTimestampsAndWatermarks 方法可以传入两种时间戳分配器:

  • 周期性生成 Watermark 的时间戳分配器:AssignerWithPeriodicWatermarks
  • 断点式生成 Watermark 的时间戳分配器:AssignerWithPunctuatedWatermarks

这两种时间戳分配器均是 TimestampAssigner 的子类,具体继承关系如下图所示。在为元素分配时间戳的基础之上增加了生成 Watermark 的逻辑,可以理解是一个实现 Watermark 生成逻辑的时间戳分配器。

你可能感兴趣的:(Flink,源码解读,Flink,flink,java,大数据,Watermark)