本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
RDS DuckDB分析主实例支持列式存储、即时编译、向量化执行、高效的内存管理和并行处理等能力,相比InnoDB引擎,复杂查询性能提升百倍。通过数据传输服务DTS(Data Transmission Service),您可以将RDS MySQL的数据库结构和数据同步到RDS DuckDB分析主实例,快速构建企业BI、交互查询和实时报表系统。
适用范围
已创建目标RDS DuckDB分析主实例,详情请参见创建DuckDB分析主实例。
确保目标RDS DuckDB分析主实例的存储空间大于源端数据库已使用的存储空间。
注意事项
RDS MySQL中待同步的数据表必须具备主键。
DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
请勿在数据同步时,对源库的同步对象使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。
由于RDS DuckDB分析主实例的使用限制,当集群中的节点磁盘空间使用量超过80%,该集群将被锁定。请提前预估待同步对象所需的空间,确保目标集群具备充足的存储空间。
暂不支持同步前缀索引,如果源库存在前缀索引可能导致数据同步失败。
若DTS任务运行时目标RDS DuckDB分析主实例处于备份中的状态,则会导致任务失败。
暂不支持RDS DuckDB分析主实例作为数据源进行数据同步。
若
DML
语句包含LIMIT
、非确定性函数(如UUID()
)或XA
事务时,属于复制不安全(Unsafe
)操作,可能导致主备数据不一致,同步至 DuckDB 主实例时应避免使用。
费用说明
同步类型 | 链路配置费用 |
库表结构同步和全量数据同步 | 不收费。 |
增量数据同步 | 收费,详情请参见计费概述。 |
源库支持的实例类型
执行数据同步操作的源MySQL数据库支持以下实例类型:
RDS MySQL或RDS MySQL Serverless
ECS上的自建数据库
本地自建数据库
本文以RDS MySQL为例介绍配置流程,当源数据库为自建MySQL数据库时,配置流程与该案例类似。
如果您的源数据库为自建MySQL数据库,您还需要执行相应的准备工作,详情请参见准备工作概览。
支持同步的SQL操作
DDL操作:CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、DROP COLUMN、MODIFY COLUMN
DML操作:INSERT、UPDATE、DELETE
不支持在
UPDATE
或DELETE
语句中指定ORDER BY
和LIMIT
。如果在数据同步的过程中变更了源表的字段类型,同步作业将报错并中断。您可以参照文末的方法来手动修复,详情请参见修复因变更字段类型导致的同步失败。
数据库账号的权限要求
数据库 | 所需权限 |
RDS MySQL | 推荐使用高权限账号,如果是普通账号,需要具备REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和所有同步对象的SELECT权限。 |
RDS DuckDB分析主实例 | 推荐使用高权限账号,如果是普通账号,需要具备READ和WRITE权限。 |
操作步骤
登录数据传输服务控制台,在左边菜单栏中,选择数据同步,在顶部导航栏中选择地域。
在数据同步页面中,单击创建任务,进行同步任务的创建。
在配置同步任务的源库信息及目标库信息。
页面,源实例信息
配置
说明
数据库类型
接入方式
云实例
实例地区
购买数据同步实例时选择的源实例地域信息,不可变更。
是否跨阿里云账号
不跨账号
实例ID
选择源RDS实例ID。
数据库账号
填入源RDS的数据库账号,权限要求请参见数据库账号的权限要求。
数据库密码
填入该数据库账号对应的密码。
连接方式
根据需求选择非加密连接或SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS实例的SSL加密功能,详情请参见设置SSL加密。
目标实例信息
配置
说明
数据库类型
接入方式
云实例
实例地区
购买数据同步实例时选择的目标实例地域信息,不可变更。
是否跨阿里云账号
不跨账号
说明DTS 同步任务支持跨地域数据同步迁移,本方案按照架构所示以相同地域同 VPC 内数据同步为例为您介绍构建数据一致性,更多数据同步信息请参考同步方案概览。
RDS实例ID
DuckDB的实例ID
数据库账号
填入RDS DuckDB分析主实例的数据库账号,权限要求请参见数据库账号的权限要求。
数据库密码
填入该数据库账号对应的密码。
连接方式
根据需求选择非加密连接或SSL安全连接。如果设置为SSL安全连接,您需要提前开启RDS实例的SSL加密功能,详情请参见设置SSL加密。
单击测试连接以进行下一步。
在DTS 服务器访问授权弹框中,单击测试连接。
配置任务对象。
在对象配置页面,配置待同步的对象。
配置
说明
同步类型
如果只需要进行全量同步,建议同时选中库表结构同步和全量同步。
如果需要进行不停机同步,建议同时选中库表结构同步、全量同步和增量同步。
说明若未选中库表结构同步,请确保目标库中存在接收数据的数据库和表,并根据实际情况,在已选择对象框中使用库表列名映射功能。
若未选中增量同步,为保障数据一致性,数据同步期间请勿在源实例中写入新的数据。
源库触发器迁移方式
请根据实际情况选择迁移触发器的方式,若您待迁移的对象不涉及触发器,则无需配置。更多信息,请参见配置同步或迁移触发器的方式。
说明仅当同步类型选择了库表结构同步时才可以配置。
开启迁移评估
评估源库和目标库的结构(如索引长度、存储过程、依赖的表等)是否满足要求,您可以根据实际情况选择是或者否。
说明仅当同步类型选择了库表结构同步时才可以配置。
若选择是,则可能会增加预检查时间。您可以在预检查阶段查看评估结果,评估结果不影响预检查结果。
同步拓扑
选择单向同步。
目标已存在表的处理模式
预检查并报错拦截:检查目标数据库中是否有同名的表。如果目标数据库中没有同名的表,则通过该检查项目;如果目标数据库中有同名的表,则在预检查阶段提示错误,数据同步任务不会被启动。
说明如果目标库中同名的表不方便删除或重命名,您可以更改该表在目标库中的名称,请参见库表列名映射。
忽略报错并继续执行:跳过目标数据库中是否有同名表的检查项。
警告选择为忽略报错并继续执行,可能导致数据不一致,给业务带来风险,例如:
表结构一致的情况下,在目标库遇到与源库主键的值相同的记录:
全量期间,DTS会保留目标集群中的该条记录,即源库中的该条记录不会迁移至目标数据库中。
增量期间,DTS不会保留目标集群中的该条记录,即源库中的该条记录会覆盖至目标数据库中。
表结构不一致的情况下,可能导致只能同步部分列的数据或同步失败,请谨慎操作。
是否迁移 Event
请根据实际情况选择是否迁移源库中的事件(Event)。若您选择是,则还需遵循相关要求并进行后续操作。更多信息,请参见同步或迁移事件。
目标库对象名称大小写策略
您可以配置目标实例中同步对象的库名、表名和列名的英文大小写策略。默认情况下选择DTS默认策略,您也可以选择与源库、目标库默认策略保持一致。更多信息,请参见目标库对象名称大小写策略。
源库对象
在源库对象框中选择待同步对象,然后单击
将其移动至已选择对象框。
说明同步对象选择的粒度为库、表、列。若选择的同步对象为表或列,其他对象(如视图、触发器、存储过程)不会被同步至目标库。
已选择对象
如需更改单个同步对象在目标实例中的名称,请右击已选择对象中的同步对象,设置方式,请参见库表列名映射。
如需批量更改同步对象在目标实例中的名称,请单击已选择对象方框右上方的批量编辑,设置方式,请参见库表列名映射。
说明如需按库或表级别选择同步的SQL操作,请在已选择对象中右击待同步对象,并在弹出的对话框中选择所需同步的SQL操作。
如需设置WHERE条件过滤数据,请在已选择对象中右击待同步的表,在弹出的对话框中设置过滤条件。设置方法请参见设置过滤条件。
单击下一步高级配置,进行高级参数配置。
本示例保持默认配置,无需手动配置,您也可以根据实际情况进行配置。
单击下一步数据校验,进行数据校验任务配置。
若您需要使用数据校验功能,请按需勾选数据校验方式,其他参数保持默认配置即可,您也可以根据实际情况进行配置,配置方法请参见配置数据校验。
说明如勾选结构校验,由于历史兼容性原因,即使结构已同步完成,校验过程仍可能提示“数据不一致”错误。该提示为非实质性告警,不影响实际同步结果。为避免误报,建议在数据校验时暂不启用结构校验。
单击下一步保存任务并预检查,进行同步任务的预检查。
预检查通过率达到 100% 后,单击下一步购买。
说明在同步作业正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动同步作业。
如果预检查失败,单击具体检查项后的
,查看失败详情。
您可以根据提示修复后重新进行预检查。
如无需修复告警检测项,您也可以选择确认屏蔽、忽略告警项并重新进行预检查,跳过告警检测项重新进行预检查。
在购买页面,选择数据同步实例的计费方式、链路规格,详细说明请参见下表。
类别
参数
说明
信息配置
计费方式
预付费(包年包月):在新建实例时支付费用。适合长期需求,价格比按量付费更实惠,且购买时长越长,折扣越多。
后付费(按量付费):按小时扣费。适合短期需求,用完可立即释放实例,节省费用。
资源组配置
实例所属的资源组,默认为default resource group。更多信息,请参见什么是资源管理。
链路规格
DTS为您提供了不同性能的同步规格,同步链路规格的不同会影响同步速率,您可以根据业务场景进行选择。更多信息,请参见数据同步链路规格说明。
订购时长
在预付费模式下,选择包年包月实例的时长和数量,包月可选择1~9个月,包年可选择1年、2年、3年和5年。
说明该选项仅在付费类型为预付费时出现。
配置完成后,阅读并勾选《数据传输(按量付费)服务条款》,单击购买并启动,并在弹出的确认对话框,单击确定。
购买成功之后,会返回到数据同步列表页,单击刚创建的任务 ID 进入任务详情页,在详情页中点击左侧导航栏中的任务管理可以查看具体进度。当您看到如下界面,表示存量数据已迁移完成,增量数据会实时同步。
修复因变更字段类型导致的同步失败
如果在数据同步的过程中变更了源表的字段类型,同步作业将报错并中断。您可参照如下的方法来手动修复。
在目标实例中,根据同步失败的表A(表名以customer为例),重新创建一个新表B(表名以customer_new为例),并将新表B的字段类型调整为所需的类型。
通过INSERT INTO SELECT命令,将表A的数据复制并插入到新创建的表B中,确保两张表的数据保持一致。
重命名或删除同步失败的表A,然后将表B的名称修改为customer。
在DTS控制台,重新启动数据同步作业。