flink sql cdc 代码写两个表的cdc sink 本地可以运行两个表 集群只能运行第一个 这是啥问题
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 您在使用Flink SQL CDC连接两个表到sink时,遇到了在本地环境可以正常运行,但在集群环境中仅第一个表的CDC数据被处理,第二个表的数据没有同步的问题。
背景信息:
解决方案:
BEGIN STATEMENT SET;
和END;
包裹多个sink写入操作时,要确认这些语句在集群提交的SQL脚本中没有被遗漏或格式错误。connection.pool.size
参数来增加连接池大小以支持更多源表的连接。注意事项:
示例代码回顾(确保集群提交的代码与本地一致):
BEGIN STATEMENT SET;
INSERT INTO sink_table1 SELECT ... FROM mysql_cdc_source1;
INSERT INTO sink_table2 SELECT ... FROM mysql_cdc_source2;
END;
总结: 问题可能源于资源限制、配置错误或连接池设置不足。通过检查集群资源、核对作业配置细节、适当调整连接池大小,并仔细分析集群日志,应该能定位并解决此问题,确保两个表的CDC数据都能在集群环境中正确处理。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。