CheckPoint 与 SavePoint 区别

概念

1. checkpoint

  1. checkpoint主要目的是在意外作业失败的情况下提供一个恢复机制。checkpoint的生命周期由Flink管理,也就是说,checkpoint由Flink创建、拥有和释放–无需用户互动。由于checkpoint经常被触发,并被用于故障恢复,checkpoint实现的两个主要设计目标是:尽可能轻量级地创建和尽可能快速地恢复。对这些目标的优化可以利用某些属性,例如,工作代码在执行尝试之间不会改变。
  2. 在flink任务故障自动恢复,会自动从最近的checkpoint恢复。
  3. 如果应用程序被用户终止,checkpoint会自动删除(除非检查点被明确配置为保留)。
  4. checkpoint以特定于状态的后端(本地)数据格式存储(根据特定的后端可能是增量的)。

2. savepoint

  1. savepoint的内部创建机制与检查点相同,但它们在概念上是不同的,而且制作和恢复的成本会更高一些。它们的设计更注重可移植性和操作的灵活性,特别是在作业的变化方面。保存点的用例是用于有计划的手动操作。例如,这可能是对你的Flink版本的更新,改变你的作业图,等等。
  2. savepoint是以独立于后台的状态(canonical)格式存储的(注意:自Flink 1.15以来,保存点也可以以特定于后台的本地格式存储,这种格式在创建和恢复时更快,但也有一些限制。
  3. savepoint只由用户创建、拥有和删除。这意味着,Flink不会在工作终止或恢复后删除保存点。