Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器相关的知识,希望对你有一定的参考价值。
传送门:Flink 系统性学习笔记
Flink 1.10
这篇文章主要从源码角度讲一下 Flink DataStream 中带 Watermark 生成的时间戳分配器。
我们通常通过 DataStream 的 assignTimestampsAndWatermarks 方法分配时间戳并生成 Watermark。assignTimestampsAndWatermarks 方法可以传入两种时间戳分配器:
- 周期性生成 Watermark 的时间戳分配器:AssignerWithPeriodicWatermarks
- 断点式生成 Watermark 的时间戳分配器:AssignerWithPunctuatedWatermarks
这两种时间戳分配器均是 TimestampAssigner 的子类,具体继承关系如下图所示。在为元素分配时间戳的基础之上增加了生成 Watermark 的逻辑,可以理解是一个实现 Watermark 生成逻辑的时间戳分配器。
1. TimestampAssigner
时间戳分配器 TimestampAssigner 主要用来从元素中提取时间戳并为元素分配事件时间时间戳。TimestampAssigner 接口比较简单,只有一个 extractTimestamp 方法,
以上是关于Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器的主要内容,如果未能解决你的问题,请参考以下文章
Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器
Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器
Flink 源码解读系列 DataStream 数据流元素 StreamElement