如何一起使用键值状态和检查点?

How to use key-value state and checkpoints together?

据我所知,键值状态接口允许在我的流失败后恢复状态,但在重新部署流后无法恢复状态。

如果我想在重新部署后恢复状态,我应该实现 Checkpointed 接口和 save/restore 状态 from/to 键值状态使用 Checkpointed 接口的方法( + 不要忘记在部署之前创建保存点和 运行 使用创建的保存点创建新流程)。对吗?

使用本地用户实例状态的 Checkpointed 接口或通过 RuntimeContext 获得的每个键状态,状态被检查点和正确恢复。实际上,使用每个键状态更容易,因为您不需要实现任何检查点代码。

如果你想明确地停止你的 Flink 作业并在稍后恢复检查点状态的时间点恢复它,你可以使用 Savepoints 来做到这一点。保存点使用与连续检查点相同的机制,允许您在出现故障时重新启动作业。