数据传输服务DTS

功能

功能 介绍
数据同步 实现数据源之间的数据==实时同步==,适用于数据异地多活、数据异地灾备、本地数据灾备、跨境数据同步、查询与报表分流、云BI及实时数据仓库等多种业务场景。
数据迁移 实现同构和异构数据源之间的数据迁移,适用于数据上云迁移、阿里云内部跨任务数据迁移、数据库拆分或扩容等业务场景。
数据集成 作为数据迁移功能的延伸,数据集成功能可以根据调度策略的配置,定期地将源库中的结构和存量数据迁移至目标库中,帮助您构建更加灵活的数据仓库(例如构建T+1的周期性数仓)。
数据订阅 获取自建MySQL、[[Aliyun/数据库/关系型数据库RDS
数据加工 实现流式数据的抽取、数据转换和加工、数据装载。丰富企业实时数据处理和计算场景,赋能企业数字化转型。
数据校验 为数据迁移或同步任务配置数据校验功能,监控源库与目标库数据的差异,以便及时发现数据不一致的问题。

迁移和同步的区别

对比项 数据迁移 数据同步
适用场景 主要用于上云迁移,例如将本地数据库、[[Aliyun/计算/ECS ECS]]上的自建数据库或第三方云数据库、阿里云RDS数据库跨地域跨账号迁移至阿里云数据库。
支持的数据库 请参见迁移方案概览 请参见同步方案概览
支持的数据库部署位置(接入方式) - 阿里云实例
- 有公网IP的自建数据库
- 通过数据库网关DG接入的自建数据库
- 通过[[Aliyun/网络/CEN-TR
云企业网CEN]]接入的自建数据库
- ECS上的自建数据库
- 通过专线/VPN网关/智能接入网关接入的自建数据库
功能特性差异 - 支持库表列三级对象名映射。
- 支持过滤待迁移的数据。
- 支持选择迁移的SQL操作类型,例如选择仅迁移INSERT操作。
- 支持读取其他阿里云账号下的专有网络,通过该功能可以实现跨阿里云账号迁移专有网络下的自建数据库。
- 支持库表列三级对象名映射。
- 支持过滤待同步的数据。
- 支持在线修改同步对象。
- 支持MySQL等间的==双向同步==。
- 支持选择同步的SQL操作类型,例如选择仅同步INSERT操作。
计费方式 仅支持按量付费。 支持按量付费和包年包月。
计费规则 仅在增量数据迁移正常运行期间计费(不包含增量数据迁移暂停期间),结构迁移和全量数据迁移期间不计费。 - 按量付费时,仅在增量数据同步正常运行期间计费(包含增量数据同步暂停期间),结构同步和全量数据同步期间不计费。
- 包年包月时,按照购买时选择的配置和购买量一次性扣费。

核心区别

  • ==同步==适合长期持续实时同步,==迁移==更适合短期迁移任务。
  • 同步是可以==双向同步==的,迁移只能单向迁移。
  • 对于某些不支持数据同步的数据库(比如MongoDB),可以采用增量数据迁移的方式来实现数据同步。

数据迁移

实现本地DB上云迁移、阿里云内部跨实例迁移、跨账号跨地域迁移、数据库拆分等需求。甚至可以用DTS迁移其他云的数据库(只要有公网IP访问DB,源库放行即可)。

提供了库表列三级映射、数据过滤等多种ETL特性。

迁移类型

迁移类型 说明
库表结构迁移 DTS将源库中待迁移对象的结构定义迁移至目标库(例如表、视图、触发器、存储过程等)。对于异构数据库之间的结构迁移,DTS会根据源库和目标库的语法,将结构定义的语法进行转换,例如将Oracle中的number转换为MySQL中的decimal。
全量迁移 DTS将源库中待迁移对象的存量数据,全部迁移到目标库中。如果在配置数据迁移任务时,仅选择了结构迁移和全量数据迁移,那么在迁移过程中,源库的新增数据不会被迁移至目标库。
增量迁移 DTS会先在源库中实现静态快照,然后将快照数据迁移到目标库,最后再将迁移过程中源库产生的增量数据实时同步至目标库。

全量迁移注意

为保障数据一致性,迁移期间请勿在源库中写入新的数据。如需实现==不停机迁移==,您需要在配置数据迁移任务时,同时选择结构迁移全量数据迁移增量数据迁移

增量迁移说明

增量数据迁移会保持实时同步的状态,所以迁移任务==不会自动结束==,您需要手动结束迁移任务。

ETL特性

ETL是将业务系统中的数据进行:==抽取-Extract、清洗转换-Transform、加载-Load==到数据仓库的过程。是BI(商业智能)中的重要环节。

数据迁移支持多种ETL特性:

  • 库表列三级对象名映射:实现对源和目标实例的库名、表名、列名不同的两个对象之间进行数据迁移。
  • 条件过滤:对要迁移的表设置SQL条件过滤要迁移的数据

数据校验

监控源库和目标库数据差异的功能,支持在不停服的情况下校验。

  • 全量校验、增量校验、结构校验
  • 校验出不一致的数据,DTS会在一定时间后再校验,确保异常不是由于增量延迟所导致。

迁移场景

不停机迁移数据库

迁移过程中应用可以保持运行。

注意

还是有一定的停机时间的,只不过相比传统方式少了一些。唯一的停机时间是将应用程序切换到目标数据库的过程。通常情况下,此切换窗口可以降低到==分钟级别==。这是一定要有的,在切换的时候停机,保证数据一致性。

迁移过程包括三个阶段:

  1. 结构迁移
  2. 全量数据迁移
  3. 增量数据迁移
    • 增量数据校验、增量迁移会持续运行,直到手动停止。源库中进行的数据变更会实时同步到目标数据库。
    • 先停止应用写入数据,再等增量数据迁移完成。这样就完成数据迁移了。
    • 迁移完成后,可以验证目标库是否和应用兼容。验证通过后,即可切换应用程序到目标库。

异地灾备

在另一个区域构建灾备中心,用DTS在业务中心和灾备中心持续同步数据更新,保持地域间副本同步。
主地域故障,可以将用户请求切换到灾备区域。

异地多活

  • 用户地理位置分布较广,地理位置远的客户访问延迟较高。
  • 单个地域底层基础设置能力限制业务扩展,例如供电能力、网络建设能力等。

解决方案

可以在同城、异地构建多个业务单元。每个业务单元之间用DTS实现数据==双向实时同步==,保障全局数据一致性。任一单元故障,切换到另一个单元即可,业务==秒级恢复==。还可以将业务流量分布至各个业务单元。

加速全球化业务访问

全球化业务,在全球多个Region设立业务中心,通过DTS将主业务中心的数据实时同步到次业务中心,各个地区的读请求,路由到就近的次业务中心,避免远距离访问。可通过 CEN 实现跨Region网络互通。