Flink cdc任务在同步过程中新增同步表后选择全量初始化历史数据,会阻塞原先其余表的增量同步么?
Flink CDC在同步过程中,当你新增一张表并选择全量初始化历史数据时,其工作流程是这样的:
全量初始化阶段:Flink CDC会从源数据库中读取这张新增表的历史数据,从最早的可用数据开始直到全量数据结束的那个时间点。
切换到增量同步阶段:全量同步完成后,Flink CDC会从全量数据结束的那个时间点对应的binlog位置开始读取增量数据,而不是从当前时间点的binlog位点开始。
关于binlog归档的问题,如果binlog在全量同步期间被归档并且不再可用,确实可能会出现找不到相应binlog文件的错误。为避免这种情况,需要确保binlog保留足够长的时间,至少要覆盖全量同步所需的时长。
至于全量同步是否会阻塞已存在的表的增量同步,Flink CDC通常设计为可以同时处理全量同步和增量同步的任务,也就是说,新表全量同步的过程不应该影响到其他表的增量同步。全量和增量任务可以在一定程度上并行执行,互不影响。但是,具体表现还取决于Flink作业的整体资源配置和并发处理能力。
新增表不影响其他,有个feature是新增表不断流。增量数据从任务开始就在同步了。历史数据同步及binlog同步在全量阶段是并行执行的,在全量阶段,增量同步的数据会跟全量切片数据进行去重合并发往下游。此回答来自钉群Flink CDC 社区。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。