云原生数据仓库AnalyticDB MySQL是阿里巴巴自主研发的海量数据实时高并发在线分析(Realtime OLAP)云计算服务,使得您可以在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索。通过数据传输服务DTS(Data Transmission Service),您可以将RDS MySQL同步到云原生数据仓库AnalyticDB MySQL,帮助您快速构建企业内部BI、交互查询、实时报表等系统。
前提条件
- RDS MySQL中待同步的数据表必须具备主键。
- 已创建目标云原生数据仓库AnalyticDB MySQL集群,详情请参见创建云原生数据仓库AnalyticDB MySQL(2.0)或创建云原生数据仓库AnalyticDB MySQL(3.0)。
- 确保目标云原生数据仓库AnalyticDB MySQL具备充足的存储空间。
- 如果同步的目标为云原生数据仓库AnalyticDB MySQL(2.0),那么源RDS MySQL待同步的对象不能包含云原生数据仓库AnalyticDB MySQL(2.0)保留的库名和列名,否则将造成数据同步失败或DDL操作同步失败。
优惠活动
注意事项
- DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
- 请勿在数据同步时,对源库的同步对象使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。
- 由于云原生数据仓库AnalyticDB MySQL(3.0)本身的使用限制,当云原生数据仓库AnalyticDB MySQL(3.0)集群中的节点磁盘空间使用量超过80%,该集群将被锁定。请提前根据待同步的对象预估所需空间,确保目标集群具备充足的存储空间。
- 暂不支持同步前缀索引,如果源库存在前缀索引可能导致数据同步失败。
术语/概念对应关系
MySQL | 云原生数据仓库AnalyticDB MySQL |
---|---|
数据库 |
|
表 |
|
说明 关于
云原生数据仓库AnalyticDB MySQL中表组和表的相关介绍,请参见
常见术语。
支持同步的SQL操作
目标数据库版本 | 支持的SQL操作 |
---|---|
云原生数据仓库AnalyticDB MySQL 2.0 |
|
云原生数据仓库AnalyticDB MySQL 3.0 |
说明 如果在数据同步的过程中变更了源表的字段类型,同步作业将报错并中断。您可以
提交工单处理或参照文末的方法来手动修复,详情请参见
修复因变更字段类型导致的同步失败。
|
数据库账号的权限要求
数据库 | 所需权限 |
---|---|
RDS MySQL | REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和所有同步对象的SELECT权限。 |
云原生数据仓库AnalyticDB MySQL(2.0) | 无需填写数据库账号信息,DTS会自动创建账号并授权。 |
云原生数据仓库AnalyticDB MySQL(3.0) | 读写权限。 |
数据类型映射关系
由于MySQL和云原生数据仓库AnalyticDB MySQL的数据类型并不是一一对应的,所以DTS在进行结构初始化时,会根据数据类型定义进行类型映射,详情请参见结构初始化涉及的数据类型映射关系。
操作步骤
修复因变更字段类型导致的同步失败
如果在数据同步的过程中变更了源表的字段类型,同步作业将报错并中断。您可参照如下的方法来手动修复,或者提交工单处理。
- 在目标实例中,根据同步失败的表A(表名以customer为例),重新创建一个新表B(表名以customer_new为例),确保两张表的表结构保持一致,。
- 通过INSERT INTO SELECT命令,将表A的数据复制并插入到新创建的表B中,确保两张表的数据保持一致。
- 重命名或删除同步失败的表A,然后将表B的名称修改为customer。
- 在DTS控制台,重新启动数据同步作业。