在使用 Flink CDC 的 Initial 模式时,并不要求必须开启 Flink 的 checkpoint 功能,但开启 checkpoint 对于确保数据处理的一致性和容错性是非常有益的。

Initial 模式与 Checkpoint

  • Initial 模式:如前所述,在此模式下,Flink CDC 会先执行一次全量加载以获取源数据库的当前状态,然后切换到增量更新模式来持续监听新的变更。这个过程本身不依赖于 Flink 的 checkpoint 机制,而是依靠数据库的日志(例如 MySQL 的 binlog)来跟踪变化。
  • Checkpoint:另一方面,Flink 的 checkpoint 是一种用于实现容错的机制,它定期保存应用程序的状态快照。如果作业失败,Flink 可以从最近的一个 checkpoint 恢复,从而保证了 exactly-once 的语义。对于 CDC 作业来说,checkpoint 可以保存已经读取的偏移量信息,以便在恢复时能够从正确的位置继续读取变更日志。

为什么建议开启 Checkpoint

即使在 Initial 模式中,也推荐开启 checkpoint,原因如下:

  1. 容错性:确保即使发生故障,也可以从最近的稳定状态恢复,而不是重新开始整个过程。
  2. 一致性:通过 checkpoint,可以确保在发生故障和恢复的情况下,数据处理的一致性和准确性。
  3. 进度追踪:checkpoint 可以记录 CDC 连接器已经读取到的偏移量,这有助于在重启或恢复时准确地找到上次停止的地方。