一、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的系統架構
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iM4MTMyYzY0ATO3U2M5kDNzYzX1UjM1ADM1EzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
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通過提供訂閱的功能,可以讓業務實時了解資料變更,以便更新緩存。
該設計的優勢: