Flink CDC如果数据oracle 数据量比较大,是先进行全量同步, 然后再进行增量同步,分两个job 来执行吗?这中间会不会全量同步的时候有些数据已经变动,这部分变动的数据,增量同步的时候可以监听到吗?
是的,如果是全量同步 + 增量同步,可以分为两个 job 来执行。
在进行全量同步时,可以使用 Flink CDC 的 snapshot 模式,一次性读取所有的数据;在增量同步时,可以使用 changelog 模式,监听源数据库的变化事件。
在增量同步阶段,如果源数据库中有新的数据发生变化,会自动被监听并发送到 Flink 中处理,但是如果增量阶段的数据是在全量同步阶段之前发生的,则无法被监听到。
所以如果数据量较大,建议先进行全量同步,然后再进行增量同步。如果在全量同步期间数据发生了变化,可以将这些变化作为新的增量数据进行处理。
Flink CDC支持全增量一体化同步,为用户提供实时一致性快照。在处理Oracle数据库时,该工具能够先同步全量历史数据,然后无缝切换到同步增量数据。对于新增的插入数据,Flink CDC会将其追加到实时一致性快照中;而对于更新的数据,则会在已有的历史数据中进行更新。
如果你想要进行全量同步和增量同步,可以将CDC任务配置为只进行一次全量同步,通过设置scan.startup.mode为"initial",表示启动时执行一次全量扫描。同时,通过设置debezium.snapshot.mode为"initial",表示使用快照模式进行全量同步。
关于增量同步过程中是否能监听到全量同步时候已经变动的数据,答案是肯定的。如前所述,Flink CDC 在增量同步时,无论是新增的插入数据还是更新的数据,都能够正确地进行处理和同步。
你可以看下官方或者B站的原理解析,以前是锁表,现在是增量是同时监控的,有增量会进行合并,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。