我正在 Java 中创建一个从 Iceberg 流式传输的 AWS Flink 应用程序,并想知道 Flink 是否具有机制,可以在整个应用程序关闭时从成功处理的最后一个快照 ID 重新启动流。我应该将快照 ID 写入数据库还是有更好的解决方案?
预期场景:
我不使用专用的 IcebergSource。也许这个实现可以以某种方式解决它。现在我正在使用 FlinkSource。两种源实现都有设置快照 ID 的方法,但必须手动设置并在处理过程中存储在某个地方。有没有办法避免它并使用内部 Flink 机制?
Flink 有快照机制(检查点和保存点)。它用于将 Flink 的状态写入持久存储,以便在发生错误或您想要执行升级(Flink 集群或应用程序中的业务逻辑)的情况下进行恢复。请参阅https://nightlies.apache.org/flink/flink-docs-stable/docs/ops/state/checkpoints/了解更多详细信息