数据传输服务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会在一定时间后再校验,确保异常不是由于增量延迟所导致。
迁移场景
不停机迁移数据库
迁移过程中应用可以保持运行。
注意
还是有一定的停机时间的,只不过相比传统方式少了一些。唯一的停机时间是将应用程序切换到目标数据库的过程。通常情况下,此切换窗口可以降低到==分钟级别==。这是一定要有的,在切换的时候停机,保证数据一致性。
迁移过程包括三个阶段:
- 结构迁移
- 全量数据迁移
- 增量数据迁移
- 增量数据校验、增量迁移会持续运行,直到手动停止。源库中进行的数据变更会实时同步到目标数据库。
- 先停止应用写入数据,再等增量数据迁移完成。这样就完成数据迁移了。
- 迁移完成后,可以验证目标库是否和应用兼容。验证通过后,即可切换应用程序到目标库。
异地灾备
在另一个区域构建灾备中心,用DTS在业务中心和灾备中心持续同步数据更新,保持地域间副本同步。
主地域故障,可以将用户请求切换到灾备区域。
异地多活
- 用户地理位置分布较广,地理位置远的客户访问延迟较高。
- 单个地域底层基础设置能力限制业务扩展,例如供电能力、网络建设能力等。
解决方案
可以在同城、异地构建多个业务单元。每个业务单元之间用DTS实现数据==双向实时同步==,保障全局数据一致性。任一单元故障,切换到另一个单元即可,业务==秒级恢复==。还可以将业务流量分布至各个业务单元。
加速全球化业务访问
全球化业务,在全球多个Region设立业务中心,通过DTS将主业务中心的数据实时同步到次业务中心,各个地区的读请求,路由到就近的次业务中心,避免远距离访问。可通过 CEN 实现跨Region网络互通。