通過DTS將RDS的資料實時同步至DataHub

汐林發表於2018-09-29

準備工作

  • 建立一個資料庫和表,您可以選擇使用阿里雲的RDS資料庫,也可以在本地伺服器上自建資料庫。本案例以華東1區的RDS MySQL資料庫為例,資料庫表的名稱為datav_test,欄位及資料如下圖所示。

  • 登入阿里雲Datahub控制檯,選擇華東1,單擊建立Project,建立一個Datahub專案(本案例的專案名稱為dts_test)。

資料同步

  1. 進入阿里雲DTS控制檯,單擊左側選單欄中的資料同步
  2. 單擊建立同步作業,購買資料傳輸服務例項,配置如下圖所示。

注意

 - **源例項**選擇**MySQL**,**目標例項**選擇**Datahub**。
 - 源例項區域和目標例項區域以及同步作業例項區域需保持一致。
  1. 購買成功後,返回控制檯,單擊例項右側的配置同步鏈路
  2. 選擇同步通道的源及目標例項,如下圖所示,完成後單擊授權白名單並進入下一步

  1. 選擇同步物件。選擇需要同步的表,單擊 > 圖示按鈕。

  1. 單擊預檢查並啟動,啟動預檢查。如果預檢查成功,系統會顯示如下對話方塊。

  1. 單擊關閉,返回資料同步頁面,單擊頁面右上角的重新整理,檢視例項狀態。此時正常情況下,例項狀態應該顯示為初始化中

說明:初始化的時間依賴於同步表的數量大小。

  1. 當初始化完成後,同步鏈路即進入同步中的狀態,此時源跟目標例項的同步鏈路才真正建立完成。單擊頁面右上角的重新整理,檢視例項的同步概況。

  1. 進入阿里雲Datahub控制檯,單擊專案右側的檢視,進入Topic頁面,可以看到已經同步完成的表的名稱即為topic的名稱。

  1. 單擊topic右側的檢視,選擇Schema,檢視已經同步完成的表的結構。

資料採集

說明:由於Datahub同步的是增量資料,因此您必須在資料庫中增加一條或多條資料,才能同步到Datahub中。此案例採用手動插入資料的方式,僅作為參考,在實際應用中,您表中的資料應該是實時寫入的。

  1. 登入您的資料庫,在表中插入一條資料,如下圖所示。

  1. 回到阿里雲Datahub控制檯,單擊topic右側的檢視,選擇Shards
  2. 單擊某個shard右側的資料抽樣
  3. Shard資料抽樣頁面,指定一個時間(該時間要小於等於最新資料時間,否則無法抽取資料),單擊抽樣,檢視資料同步結果。

常見問題

  1. DTS 資料同步失敗,如何處理?

可能原因:同步鏈路規格配置不合適導致。

解決方法:參考資料同步規格說明,選擇合適的規格,重新建立同步作業。

  1. Datahub 中單擊資料抽樣,抽樣資料為空,如何處理?

可能原因:

  • 指定的時間大於最新資料時間
  • 資料庫中不存在增量資料。

解決方法:

  1. 在進行資料抽樣時,設定指定的時間小於等於最新資料時間,再次單擊抽樣,檢視資料是否為空。

    • 是,執行下一步。
    • 否,問題解決。
  2. 在您的資料庫中插入一條或多條資料,重新回到Datahub控制檯,對資料進行抽樣。

    如果問題仍然無法解決,請在控制檯上提交工單,或者直接聯絡阿里雲技術支援工程師。
    

(本文作者為阿里雲大資料產品文件工程師)


相關文章