周期性全量调度是数据迁移的高级功能,可根据调度策略和周期配置,定期地将源库中的结构和存量数据迁移至目标库中。通过该功能可以帮助您构建更加灵活的数据仓库(例如构建T+1的周期性数仓),本文介绍周期性全量调度的策略、限制及适用场景。

支持的数据库

支持全量数据迁移的数据源均支持周期性全量调度功能,详情请参见支持的数据库和迁移类型

支持的地域

华北1(青岛)、华北2(北京)、华北3(张家口)、华南1(深圳)和华东2(上海)。

费用说明

迁移类型 链路配置费用 公网流量费用
结构迁移和全量数据迁移 不收费。 通过公网将数据迁移出阿里云时将收费,详情请参见产品定价

配置方法

您需要在配置数据迁移任务的设置迁移类型及列表环节中,为数据迁移任务配置周期性全量调度策略。

说明 相关配置案例,请参见RDS MySQL间的周期性全量迁移

调度策略说明

调度策略 说明 适用场景
多副本模式 DTS根据调度周期,自动地将源库中待迁移对象的结构和存量数据迁移至目标库中。
说明
  • DTS每次调度时,会自动地在目标库中创建一个带有任务调度时间后缀(格式为_yyyymmdd_HH_mm_ss)的数据库,用于接收迁移的数据。例如待迁移的数据库为dtstestdata,任务调度时间为2020年02月10日的11:00:00,那么DTS在该时间执行迁移时,在目标库中创建的库名即为dtstestdata_20200210_11_00_00
  • 目标库需具备充足的存储空间用于存放每个周期DTS迁移过来的数据。
适用于某些测试场景,例如对多个副本历史数据执行测试操作。
重新同步模式 在第一个调度时间点,DTS自动地将待迁移对象的结构和存量数据迁移至目标库中;在后续的调度时间点,DTS会重新将待迁移对象的存量数据迁移至目标库中。
警告
  • 在每次的调度时间点到来之前,您需要手动删除上个调度时间点迁移到目标库中的结构和数据(即删除迁移过来的库和表),否则将会导致数据迁移失败。
  • 如果DTS对该数据源不支持结构迁移,您还需要对照待迁移对象的结构在目标库中创建对应的结构。
在目标库中仅保持一份最新的存量数据用于测试或数据分析。
基于时间戳的全量模式 DTS会根据时间戳字段,将上次调度后产生的新数据迁移至目标库。该功能存在如下限制:
  • 当源和目标均为MySQL数据库时才支持该策略。
  • 源表须具备时间戳字段,且需在配置数据迁移任务时指定每个表的时间戳字段。
  • 源表不能存在外键约束,否则可能导致数据迁移失败(可能在目标库中先更新有外键约束的子表,后更新附表,导致子表插入新数据报错)。
  • 无法迁移被物理删除的数据(例如通过DELETE、TRUNCATE命令删除)。
说明
  • 如果存在无主键的表,DTS会将整条记录作为主键进行全字段匹配,然后删除旧数据并插入新数据。
  • 新增的数据在写入目标库时,如果遇到主键冲突,DTS将执行REPLACE INTO来插入新数据。
适用于轻量级的数据迁移场景(无需每次迁移所有的存量数据),例如构建T+1的周期性数仓。