更新时间:2024-10-18 GMT+08:00

源端为MySQL,目的端为DMS Kafka

本章节适用于配置实时处理集成作业MySQL到DMS Kafka链路,期望将源端1个或多个Mysql实例的数据实时同步到目的端为DMS Kafka数据库的场景。

同步场景

  • 整库:适用于将1个源端为Mysql实例上的多个数据库表实时同步到1个目标端为DMS Kafka实例的多个库表。
  • 分库分表:适用于将多个源端为Mysql实例上的多个分库中的分表实时同步到1个目标端为DMS Kafka实例的汇聚表。

整库场景

  1. 源端配置。
    添加数据源,选择需要迁移的MySQL表。
    图1 选择库表

    库与表均支持自定义选择,即可选择一库一表,也可选择多库多表。

  2. 目标端配置。
    图2 配置目标端参数
    • 设置源表与Topic映射规则:
      • 目标Topic名称规则:源端表名与目的端Topic名的映射规则,可以指定为单一Topic,也可使用内置字段做映射。

        可以使用的内置变量有:

        #{source_db_name}:源库名。

        #{source_table_name}:源库名。

      • 同步kafka partition策略:支持以下三种投递策略,源端无主键情况下,目的端默认投递到partition 0。
        • 按库名+表名的hash值投递到不同Partition。
        • 全部投递到Partition 0。
        • 按表的主键值hash值投递到不同的Partition。
      • 需要同步的数据库操作:支持同步的数据库操作为DDL和DML。
      • 投递到Kafka的数据格式:投递到Kafka的数据格式有Debezium JSON和Canal JSON。
    • 源表与目标表映射:支持用户根据实际需求修改映射后的目的端topic名称,可以配置为一对一、多对一的映射关系。
      图3 配置源表与目标表映射

分库分表场景

  1. 源端配置。
    图4 添加逻辑表

    逻辑表名:即最终写入到DMS Kafka的表名。

    源库过滤条件:支持填入正则表达式,在所有Mysql实例中通过该正则表达式过滤出要写入目标端DWS汇聚表的所有分库

    源表过滤条件:支持填入正则表达式,在过滤出的源端分库中再次过滤出要写入目标端DWS汇聚表的所有分表

    已添加的逻辑表支持预览,单击操作列的预览即可。

    预览逻辑表,源表数量越多,等待时间可能越长,请耐心等待。

    图5 逻辑表预览
  2. 目标端配置。
    图6 配置目标端参数
    • 设置源表与Topic映射规则:
      • 目标Topic名称规则:源端表名与目的端Topic名的映射规则,可以指定为单一Topic,也可使用内置字段做映射。

        可以使用的内置变量有:

        #{source_db_name}:源库名。

        #{source_table_name}:源库名。

      • 同步kafka partition策略:支持以下三种投递策略,源端无主键情况下,目的端默认投递到partition 0。
        • 按库名+表名的hash值投递到不同Partition。
        • 全部投递到Partition 0。
        • 按表的主键值hash值投递到不同的Partition。
      • 需要同步的数据库操作:支持同步的数据库操作为DDL和DML。
      • 投递到Kafka的数据格式:投递到Kafka的数据格式有Debezium JSON和Canal JSON。
    • 源表与目标表映射:支持用户根据实际需求修改映射后的目的端topic名称,可以配置为一对一、多对一的映射关系。
      图7 配置源表与目标表映射