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结果表。
操作步骤
登录实时计算控制台。
单击对应工作空间操作列下的控制台。
在 页面,单击新建。
在新建作业草稿页面,单击数据同步模板。
双击MySQL到Hologres数据同步模板名称,或者单击选中模板后,在右下角单击下一步。
配置数据同步信息。
选择源和目标后,单击下一步。
类别
配置项
详情
源
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。
创建计划。
多库多表同步
在多库多表同步页签下,选中目标的源库和表名称。
单击保存计划,查看计划列表。
说明在进行多库多表数据同步时,该模板会在目标Catalog中创建与源Catalog同名的数据库和表,且默认同步到Public Schema下。如果您需要修改数据库名称、表名称以及指定Schema,建议通过编写SQL的方式进行修改。修改名称详情请参见CREATE TABLE AS(CTAS)语句和CREATE DATABASE AS(CDAS)语句,指定Schema详情请参见作为CDAS的目标端Catalog,指定后使用Catalog时的表名格式也会发生变化,详情请参见管理Hologres Catalog。
单击下一步。
查看系统根据您选择的目标库和表生成对应的SQL代码。
您可以根据需要修改文件名称、存储位置或引擎版本等信息。
分库分表合并
在分库分表合并页签下,选中目标的源库和表名称,或者直接输入您创建的目标库和表名称。
说明推荐您使用正则表达式填写源库和源表信息。
单击保存计划,查看计划列表。
在一个作业中,可以同时创建多个多库多表同步和分库分表合并的计划,示例如下图所示。
单击下一步。
查看系统根据您选择的目标库和表生成对应的SQL代码。
您可以根据需要修改文件名称、存储位置或引擎版本等信息。
单击创建。