阿里DTS 学习笔记

一、DTS是什么

DTS(Data Transmission Service, 数据传输服务),用于在关系型数据库、NoSQL数据库、数据仓库之间迁移数据。

可以使用DTS将数据迁移至阿里云,也可以在阿里云和本地数据系统之间做数据迁移。

二、DTS的优势

相比传统的数据传输工具,DTS的优势:
1)传输过程中保证高稳定性
2)支持多种数据传输方式,包括:数据迁移、数据集成、数据同步、数据订阅。
3)支持各种数据源直接的数据迁移。(如MySQL,redis等)
4)支持多种数据库引擎作为源和目标
5)支持断点续传:避免了硬件和网络故障导致的中断
6)支持定时任务

三、数据传输方式

3.1、数据迁移

DTS可用于在数据源之间迁移数据:

  • 数据迁移通常用于需要最小化停机时间的一次性迁移
  • 在增量数据迁移期间,源数据库中正在进行的数据变更会实时同步到目标数据库

3.2、数据集成

定期迁移数据:可以为数据迁移任务配置定时执行策略
数据集成通常用于大型数据仓库中的周期性迁移,例如每天晚上定时执行,把白天产生的数据传输到数据仓库

3.3、数据同步

DTS可做到实时同步数据源之间的数据变更:

  • 通常用于数据库之间的数据传输
  • 数据同步支持单向同步和双向同步
  • 与增量迁移相比,数据同步实时性更好

3.4、数据订阅

DTS可获取数据源的数据变更,并提供”发布/订阅“服务

四、DTS的工作原理

4.1、DTS的系统架构

在这里插入图片描述
DTS系统架构的关键点:

  • 主备冗余:DTS的每个功能模块(迁移模块、同步模块、订阅模块)都部署在主备冗余的服务器上。通过容灾系统定时检测每台服务器的健康情况,如果某台服务器故障,服务器上的工作负载将以最小的延迟,切换到运行正常的备服务器上。
  • 接入地址动态检测:对于数据同步和数据订阅,容灾系统会检测数据源接入的地址是否发生变更,如果接入地址已变更,容灾系统会重新配置数据源以保证数据连接正常运行。

4.2、数据迁移工作原理

数据迁移包括三个阶段:

  • 结构迁移(即表结构迁移)
  • 全量数据迁移(即表历史数据迁移)
  • 增量数据迁移(即表增量数据迁移)

在数据迁移前,DTS需要再目标数据库中重新创建数据结构。

对于异构数据库之前的迁移,DTS会解析数据库的DDL代码,然后将代码转换成目标数据库语法,然后在目标数据库中重新创建结构对象。

在全量数据迁移时,DTS会将源数据库小红的历史数据全部迁移到目标数据库。迁移过程中,源数据库保持运行状态,在迁移过程中扔不断做数据更新。DTS使用增量数据读取模块来获取全量数据迁移过程中发生的数据更新。当全量数据迁移开始时,增量数据读取模块也将被激活。在全量数据迁移节点,增量数据会被解析,并重新格式化并存储在本地DTS服务器上。

当全量数据迁移完成后,DTS会检索本地存储的增量数据,重新格式化,并将数据更新在目标数据库上执行,直到所有的增量更新都写入到目标数据库,这样源数据库和目标数据库中的数据就完全一致了。
在这里插入图片描述

4.3、数据同步的工作原理

DTS可用于在两个数据源之间做正在进行变更数据的同步。

数据同步分2个阶段:

  • 同步初始化:DTS将源数据库的存量数据加载到目标数据库
  • 数据实时同步:DTS同步正在进行的数据变更,并保持数据库和目标数据库的同步。

为了同步正在进行的数据变更,DTS使用两个处理事务日志的模块:

  • 事务日志读取模块:使用相应的协议与源数据库通信,以读取事务日志。例如,使用binlog dump协议从MySQL中读取事务日志。
  • 事务日志应用模块:从”事务日志读取模块“中读取并筛选出数据更新,仅保留与正在同步的对象相关的数据更新,然后把数据更新在目标数据库上执行。在这个过程中,事务日志应用模块会保持事务的ACID属性。

在这里插入图片描述

4.4、数据订阅的工作原理

DTS的数据订阅模块获取数据更新,并提供”发布/订阅“的形式,不同业务方可以自己订阅。

日志处理模块使用相应的协议与源数据库进行通信,以读取事务日志。例如,使用binlog dump协议从MySQL中读取事务日志。然后日志处理模块解析事务日志、过滤数据、格式化更新记录,并最终将处理后的数据在本地持久化。

在这里插入图片描述

五、DTS的产品优势

DTS性能好、稳定性好、可与阿里云数据库无缝对接:
1、兼容多种数据库引擎:Oracle, MySQL, PlarDB-O等。
2、支持多种应用场景,包括数据迁移、数据同步、数据订阅。
3、支持业务不停服迁移:数据迁移期间的实际停机时间可降低到分钟级。
4、高性能:峰值数据传输速率可达到 70 MB/S。
5、高可用:每个集群有多个服务器节点,如果一个节点故障,控制中心会再几秒钟内将工作负载切换到集群中正常的节点。
对于某些关键传输的链路,DTS会持续验证数据完整性,并自动进行更正。
DTS各模块之间的数据流是安全且可恢复的。
6、简单易用:DTS使用时只需要单击几下创建任务,可轻松监控任务,并查看关键统计数据,如传输状态、进度、性能。

六、DTS的应用场景

6.1、场景1:业务不停服迁移

传输方式:数据迁移

传统的数据迁移怎样做的呢?
在迁移前,先停止向源数据库写入,然后迁移数据,迁移数据过程可能要花费几小时甚至几天时间,这段时间业务都是不可用的。

使用DTS做数据迁移,停机时间非常短:
在数据迁移期间,唯一停机的时间是”将应用程序切换到目标数据库“时,其余整个迁移过程中,应用扔可保持运行。

通常来说,切换目标数据库的时间可以降低到分钟级。
在这里插入图片描述

6.2、数据异地灾备/异地多活

传输方式:数据同步

异地灾备主要用于一个地区机房故障,可以使用另一个机房进行灾备。异地直接通过DTS实现数据的双向实时同步,以保持地域间的副本同步。

这样当一个地区机房故障,可以切换到另一机房。

在这里插入图片描述

6.3、异地多活

通过在不同地区部署多个业务单元,各业务单元直接通过DTS实现数据的双向实时同步。一个业务单元故障,切到另一单元,即基于多个业务单元的冗余来实现更高的可用性。

在这里插入图片描述

6.4、与阿里云BI系统集成

传输方式:数据同步
把DB数据实时同步到BI系统

6.5、实时数据分析

传输方式:数据订阅
在这里插入图片描述

6.6、轻量级缓存更新

传输方式:数据订阅
DTS通过提供订阅的功能,可以让业务实时了解数据变更,以便更新缓存。
在这里插入图片描述
该设计的优势:
写请求提交到数据库后就算完成,不必等待缓存更新

6.7、业务解耦和异步处理

传输方式:数据订阅
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shijinghan1126/article/details/109640989
DTS