全部產品
Search
文件中心

Data Transmission Service:產品架構

更新時間:Jul 06, 2024

本文介紹Data Transmission Service (简称DTS)的系統架構,以及在各種資料轉送方式下的工作原理。

DTS系統架構

DTS的系統架構如下圖所示。

圖 1. DTS系統架構DTS Architecture

DTS的系統架構提供以下特性:

  • 主備冗餘

    DTS的每個功能模組都部署在多個主備冗餘伺服器上。 容災系統持續對每台伺服器執行健康情況檢查。 如果一台伺服器運行異常,該伺服器上的工作負載將以最小的延遲切換到運行正常的伺服器。

  • 接入地址動態檢測

    對於資料同步和資料訂閱,容災系統會檢測資料來源接入地址是否發生變更。 如果執行個體接入地址已更改,則容災系統將重新設定資料來源以保證資料連線正常運行。

資料移轉的工作原理

資料移轉過程包括三個階段,即結構遷移、全量資料移轉和增量資料移轉。如果需要在遷移期間保持來源資料庫的正常運行,當您在配置遷移任務時,必須將結構遷移、全量資料移轉和增量資料移轉都選為所需的遷移類型。

在遷移資料之前,DTS需要在目標資料庫中重新建立資料結構。對於異構資料庫之間的遷移,DTS會解析來源資料庫的DDL代碼,將代碼轉換成目標資料庫的文法,然後在目標資料庫中重新建立結構對象。

在全量資料移轉階段,DTS會將來源資料庫的存量資料全部遷移到目標資料庫。來源資料庫保持運行狀態,在遷移過程中仍不斷進行資料更新。 DTS使用增量資料讀模數塊來擷取全量資料移轉過程中發生的資料更新。 當全量資料移轉開始時,增量資料讀模數塊將被啟用。 在全量資料移轉階段,增量資料會被解析、重新格式化並儲存在本地DTS伺服器上。

當全量資料移轉完成後,DTS會檢索本機存放區的增量資料,重新格式化,並將資料更新應用到目標資料庫中。 此過程將持續下去,直到所有進行中的資料變更都複製到目標資料庫,並且來源資料庫和目標資料庫完全同步。

資料移轉的流程如下圖所示。

圖 2. 資料移轉流程mig

資料同步的工作原理

DTS可以在兩個資料來源之間同步進行中的資料變更。 資料同步通常用於OLTP到OLAP的資料轉送。 資料同步包括以下兩個階段:

  • 同步初始化:DTS先開始收集增量資料,然後將來源資料庫的結構和存量資料載入到目標資料庫。
  • 資料即時同步:DTS同步進行中的資料變更,並保持來源資料庫和目標資料庫的同步。

為了同步進行中的資料變更,DTS使用兩個處理交易記錄的模組:

  • 交易記錄讀模數塊:交易記錄讀模數塊使用相應的協議與來源資料庫通訊,以讀取交易記錄。 例如,該模組使用Binlog Dump協議從ApsaraDB for MySQL中讀取交易記錄。
  • 交易記錄應用模組:交易記錄應用模組從交易記錄讀模數塊檢索並篩選資料更新,僅保留與正在同步的對象相關的資料更新,進而將資料更新應用到目標資料庫。 在這個過程中,交易記錄應用模組會保持事務的ACID屬性,即原子性、一致性、隔離性和持久性。 交易記錄讀模數塊和交易記錄應用模組都基於冗餘部署。 容災系統檢查每台伺服器的健康情況。 如果發生異常,DTS將在運行正常的伺服器上恢複執行交易記錄。

資料同步的流程如下圖所示。

圖 3. 資料同步流程sync

資料訂閱的工作原理

DTS的資料訂閱模組擷取資料更新,並以“發布/訂閱流”的形式傳輸這些資料更新。 您可以為不同的應用定製消費機制。

Tlog模組使用相應的協議與來源資料庫進行通訊,以讀取交易記錄。 例如,該模組使用Binlog Dump協議從ApsaraDB for MySQL中讀取交易記錄。 然後,Tlog模組解析交易記錄,過濾資料,標準格式化更新記錄,最終將處理後的資料在本地持久化。

Tlog模組基於冗餘部署。 容災系統檢查每台伺服器的健康情況。 如果發生異常,DTS將在運行正常的伺服器上恢複讀取交易記錄。

資料訂閱的流程如下圖所示。

圖 4. 資料訂閱流程Change Tracking Diagram