我想用finkcdc 读取线上数据库 flinkcdc 在那几个阶段会锁表?读表全量和table schema 时会不会锁表?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用Flink CDC读取线上数据库时,其工作流程主要分为两个阶段:全量数据读取(Snapshot阶段)和增量数据读取(Binlog读取阶段)。根据提供的知识库资料,可以明确以下几点:
全量数据读取(Snapshot阶段): 在这个阶段,Flink CDC会通过JDBC连接到MySQL数据库,并执行SELECT语句来读取表的全量数据。此过程不会锁表,但因为需要扫描全表,可能会增加MySQL服务的查询压力。
Table Schema读取: 在初始化连接时,Flink CDC会获取表的结构信息(Schema),这一操作也不会导致锁表,它只是对元数据的读取。
增量数据读取(Binlog读取阶段): 完成全量数据读取后,Flink CDC将切换到读取Binlog模式,以捕获数据库的变更数据。此阶段是实时监听Binlog事件,同样不会锁表,而是通过Binlog Client轻量级地订阅数据变化,不对源数据库造成锁表影响。
综上所述,在Flink CDC的整个数据读取过程中,无论是全量数据读取、Table Schema读取,还是后续的增量数据读取阶段,都不会对线上数据库进行锁表操作。这确保了在数据同步的同时,源数据库可以正常处理读写请求,不影响业务运行。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。
你好,我是AI助理
可以解答问题、推荐解决方案等