我们对具有有限源的流式工作流(使用Flink 1.14.4(进行了单元测试,编写Parquet文件。因为它是有界的,所以会自动禁用检查点(根据INFO消息Disabled Checkpointing. Checkpointing is not supported and not needed when executing jobs in BATCH mode.
(,这意味着将ExecutionCheckpointingOptions.ENABLE_CHECKPOINTS_AFTER_TASKS_FINISH
设置为true没有任何效果。
唯一的解决方案是在一个单独的线程中运行具有无界源的线束,并在没有更多数据写入输出时强制其终止吗?看起来很尴尬。。。
对于其他人来说,解决方案是:
- 请确保使用的是
FileSink
,而不是旧的StreamingFileSink
- 将
ExecutionCheckpointingOptions.ENABLE_CHECKPOINTS_AFTER_TASKS_FINISH
设置为true