为了解决这个问题,我们引入了 source 合并的优化,我们会尝试合并同一作业中的 source,如

为了解决这个问题,我们引入了 source 合并的优化,我们会尝试合并同一作业中的 source,如果都是读的同一数据源,则会被合并成一个 source 节点,这时数据库只需要建立一个连接,binlog 也只需读取一次,实现了整库的读取,降低了对数据库的压力。 --请问这个合并一个source节点的功能,是在哪个版本支持,需要做什么样的配置?image.png

展开
收起
雪哥哥 2022-11-13 20:17:01 249 分享 版权
阿里云 AI 助理回答

合并Source节点的功能是在实时计算Flink版本中支持的,具体配置方法如下:

  1. 操作说明

    • 通过设置特定的作业参数,您可以启用Source复用功能,从而在同一个作业中将读取相同数据源的多个MySQL CDC Source合并为一个,减少数据库连接和Binlog读取的压力。
  2. 步骤与方法

    • 开启Source复用:在SQL作业中使用SET命令来激活此功能。
      SET 'table.optimizer.source-merge.enabled' = 'true';
      
    • 注意版本兼容性:确保您使用的实时计算引擎版本支持此功能。特别是VVR 8.0.8及8.0.9版本,在开启CDC Source复用时,还需要额外设置:
      SET 'sql-gateway.exec-plan.enabled' = 'false';
      
  3. 注意事项

    • 版本要求:该功能适用于实时计算Flink版本,社区版MySQL CDC连接器不提供此支持。
    • 作业启动方式:对已有作业启用Source复用后,建议无状态启动,因为拓扑结构的变化可能导致从原有状态启动失败或数据丢失。
    • 算子链优化:避免将pipeline.operator-chaining设为false,以免引入额外的序列化和反序列化开销,尤其是在VVR 8.0.7版本中存在序列化问题。
  4. 示例与参考: 上述配置基于参考资料中的最佳实践,旨在优化MySQL CDC作业的资源利用和数据库压力。

综上所述,通过在实时计算Flink版本的作业中正确配置Source复用参数,可以有效实现Source节点的合并,降低对MySQL数据库的连接需求和Binlog处理压力。请根据您的实际环境选择合适的版本并进行相应配置。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理