Flink CDC支持数据的实时同步和表结构变更的自动同步。您可以使用数据同步模版帮您快速生成数据同步的Flink SQL作业代码。本文为您介绍如何使用多库多表同步或者分库分表合并模版实现数据同步。

背景信息

Flink全托管支持多库多表同步和分库分表合并两种数据同步方式,二者的区别请参见下表。
同步方式详情
多库多表同步如果您需要将一个或多个数据库中的一张或多张业务数据表实时复制到另一个数据库时,则可以使用多库多表同步模版。Flink CDC可以自动同步整库的全量和增量数据,同时还能实时将每张源表的表结构变更(加列等)实时同步到对应的目标表中。多库多表同步模版会将您的参数翻译成CDAS语句,有关CDAS语句的更多能力,详情请参见CREATE DATABASE AS(CDAS)语句
分库分表合并当同一份业务数据分散在不同的数据库或者业务表时,我们往往需要用到分库分表合并的能力,将表结构相似的分库分表的数据同步到一张目标表中。Flink CDC可以自动同步源中所有分库分表的全量和增量数据(包括新增的符合正则表达式的新表),同时还能实时将每张源表的表结构变更(加列等)实时同步到对应的目标表中。分库分表合并同步模版会将您的参数翻译成CTAS语句,有关CTAS语句的更多能力,详情请参见CREATE TABLE AS(CTAS)语句

使用限制

目前仅支持从MySQL到Hologres的数据同步。

注意事项

在同步MySQL到Hologres的数据时,会同步表结构变更,详情请参见CREATE TABLE AS(CTAS)语句。同步时需要注意以下几点:
  • 无需您手动在Hologres上创建表。

    Flink会自动在Hologres上创建表,但如果Hologres已经存在对应的表,Flink会根据您创建计划中选择的目标库和表信息来映射。

  • Hologres不支持更改列的类型。

    如果当前字段的类型和Hologres下游表中对应的字段类型不同,则会写入失败,您需重修改列类型并重新同步。

关于Hologres结果表详情请参见实时数仓Hologres结果表

操作步骤

  1. 登录实时计算控制台
  2. Flink全托管页签,单击对应工作空间操作列下的控制台
  3. SQL开发页面,单击新建
  4. 新建作业草稿页面,单击数据同步模版
  5. 双击MySQL到Hologres数据同步模版名称,或者单击选中模版后,在右下角单击下一步
  6. 配置数据同步信息。
    1. 选择源和目标后,单击下一步
      选择源和目标
      类别配置项详情
      MySQL Catalog您可以直接选择已创建好的MySQL Catalog。如果您没有提前创建好源MySQL Catalog,则请单击创建Catalog进行创建。创建详情请参见管理MySQL Catalog
      MySQL server-id每个MySQL数据库客户端的唯一ID。取值范围为5400~6400。该参数也支持ID范围的格式,例如5400-5408。推荐在开启增量读取模式多并发读取数据时,设置该参数为ID范围,因为这样可以使得每个并发使用不同的ID。
      重要 不要和其他访问数据库的作业或者服务使用同一个Server ID。
      目标Hologres Catalog您可以直接选择已创建好的目标Hologres Catalog。如果您没有提前创建好目标Hologres Catalog,则请单击创建Catalog进行创建。详情请参见管理Hologres Catalog
    2. 创建计划。
      • 多库多表同步
        1. 多库多表同步页签下,选中目标的源库和表名称。数据模板中文
        2. 单击保存计划,查看计划列表。计划列表
          说明 在进行多库多表数据同步时,该模版会在目标Catalog中创建与源Catalog同名的数据库和表。如果您需要修改数据库或表名称,则建议通过编写SQL的方式进行修改,详情请参见CREATE TABLE AS(CTAS)语句CREATE DATABASE AS(CDAS)语句
        3. 单击下一步
        4. 查看系统根据您选择的目标库和表生成对应的SQL代码。多库多表SQL预览

          您可以根据需要修改文件名称存储位置引擎版本等信息。

      • 分库分表合并
        1. 分库分表合并页签下,选中目标的源库和表名称,或者直接输入您创建的目标库和表名称。分库分表
          说明 推荐您使用正则表达式填写源库和源表信息。
        2. 单击保存计划,查看计划列表。计划列表
          在一个作业中,可以同时创建多个多库多表同步和分库分表合并的计划,示例如下图所示。多个执行计划
        3. 单击下一步
        4. 查看系统根据您选择的目标库和表生成对应的SQL代码。分库分表SQL预览

          您可以根据需要修改文件名称存储位置引擎版本等信息。

  7. 单击创建
    单击创建后,就会进入SQL开发页面。后面的操作和正常的作业开发完全相同,参数配置详情和后续操作请参见作业开发作业启动