Flink侧输出(Side Output)是否会被执行Checkpoint?
Flink侧输出(Side Output)的Checkpoint容错机制说明
核心结论
Flink会对侧输出执行Checkpoint,侧输出完全被纳入Flink的Checkpoint容错体系,和主数据流遵循相同的容错规则。
依据与解释
- 从Checkpoint的核心设计逻辑来看:
(翻译自Flink 1.16官方Checkpoint文档)Checkpoint是Flink实现容错的核心机制,它会周期性保存作业的所有状态、数据源消费偏移量,以及数据流在算子间传递的中间处理位置,确保作业故障恢复时能回到一致状态,保障Exactly-Once或At-Least-Once语义。
侧输出作为从主数据流分支出来的合法输出流,其数据的生产进度、消费进度都会被Checkpoint记录在内,故障恢复时会从Checkpoint保存的位置继续处理,不会丢失数据。
- 从侧输出的设计定位来看:
(翻译自Flink 1.16官方侧输出文档)侧输出允许将不符合主输出条件的数据发送到独立流中处理,侧输出流与主数据流共享作业执行上下文,包括资源配置和容错机制。
这意味着侧输出并非脱离作业容错体系的“额外流”,而是作业数据流的一部分,自然会受到Checkpoint的保障。
补充说明
虽然官方文档没有单独针对侧输出的Checkpoint做专门的高亮说明,但结合上述文档的核心描述和Flink容错机制的整体设计,完全可以确定侧输出会被Checkpoint覆盖。作业配置的Checkpoint参数(如间隔、语义模式)会直接作用于侧输出流。
内容的提问来源于stack exchange,提问作者khan7
相关产品推荐
相关产品推荐

