Flink CDC里2.2版本上binlog reader的这个TODO(某些情况下,会感知不到数据库中动态新添加的轮转新表),在2.4的时候去掉了。这个问题是得到修复了吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是的,这个问题在Flink CDC 2.4版本中得到了修复。
在Flink CDC 2.2版本中,存在一个已知问题:在某些情况下,Binlog Reader无法感知到数据库中动态新添加的轮转新表。这会导致CDC作业无法自动捕获这些新表的变更数据,从而影响数据同步的完整性。
在Flink CDC 2.4版本中,这个TODO被移除,表明该问题已经得到解决。根据官方文档和更新日志,修复的核心改进包括:
动态表发现机制的增强
Flink CDC 2.4版本增强了对MySQL Binlog的解析能力,能够动态感知数据库中新创建的表,并将其纳入CDC作业的监控范围。这意味着即使在作业运行过程中新增了表,CDC作业也能正确捕获其变更数据。
支持更灵活的表匹配规则
在配置table-name
参数时,用户可以通过正则表达式匹配多张表。例如:
'table-name' = 'user_.*'
这种方式可以动态适配新增的分库分表场景,确保新增表的数据变更能够被捕获。
改进的Binlog位点管理
新版本优化了Binlog位点的记录和恢复机制,确保在动态表发现过程中不会丢失数据或出现重复消费的情况。
scan.startup.mode
等关键参数的设置。通过以上改进,Flink CDC 2.4版本已经能够很好地支持动态新表的变更捕获,解决了2.2版本中的这一限制。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。