通過數據傳輸服務DTS(Data Transmission Service),您可以將自建MySQL同步至云消息隊列 Kafka 版,擴展消息處理能力。

前提條件

您已完成以下操作:
  • 自建MySQL數據庫且數據庫版本為5.1、5.5、5.6、5.7或8.0版本。
  • 購買并部署云消息隊列 Kafka 版。詳情請參見購買并部署實例
    說明 云消息隊列 Kafka 版提供標準版和專業版,兩種規格都支持數據同步。您可以根據自建Kafka集群遷移情況選擇實例規格,詳情請參見評估規格
  • 在目標實例中創建用于接收同步數據的Topic。詳情請參見創建Topic
    重要
    • Topic名稱只能包含字母、數字、下劃線(_)和短劃線(-)。
    • Topic名稱長度限制在3~64字符,長度超過64字符將被自動截取。
    • Topic名稱創建后,將無法修改。

背景信息

云消息隊列 Kafka 版是阿里云提供的分布式、高吞吐、可擴展的消息隊列服務,針對開源的Apache Kafka提供全托管服務,徹底解決開源產品長期以來的痛點,您只需專注于業務開發,無需部署運維。云消息隊列 Kafka 版廣泛用于日志收集、監控數據聚合、流式數據處理、在線和離線分析等大數據領域,已成為大數據生態中不可或缺的部分。

注意事項

  • DTS在執行全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升,在數據庫性能較差、規格較低或業務量較大的情況下(例如源庫有大量慢SQL、存在無主鍵表或目標庫存在死鎖等),可能會加重數據庫壓力,甚至導致數據庫服務不可用。因此您需要在執行數據同步前評估源庫和目標庫的性能,同時建議您在業務低峰期執行數據同步(例如源庫和目標庫的CPU負載在30%以下)。
  • 如果源數據庫沒有主鍵或唯一約束,且所有字段沒有唯一性,可能會導致目標數據庫中出現重復數據。

功能限制

  • 同步對象僅支持數據表,不支持非數據表的對象。
  • 不支持自動調整同步對象,如果對同步對象中的數據表進行重命名操作,且重命名后的名稱不在同步對象中,那么這部分數據將不再同步到目標云消息隊列 Kafka 版集群中。如需將修改后的數據表繼續數據同步至目標云消息隊列 Kafka 版集群中,您需要進行修改同步對象操作,詳情請參見新增同步對象

支持同步的SQL操作

數據傳輸服務DTS支持同步的SQL操作包括INSERT、UPDATE、DELETE、REPLACE。

消息格式

同步到云消息隊列 Kafka 版集群中的數據以avro格式存儲,schema定義詳情請參見DTS avro schema定義

說明 數據同步到云消息隊列 Kafka 版集群后,您需要根據avro schema定義進行數據解析。

費用說明

數據傳輸服務DTS費用,請參見產品定價

準備工作

為自建MySQL創建賬號并設置binlog

操作步驟

  1. 購買數據同步作業,詳情請參見購買流程
    說明 購買時,選擇源實例為MySQL,目標實例為Kafka,選擇同步拓撲為單向同步
  2. 登錄數據傳輸控制臺
    說明 若數據傳輸控制臺自動跳轉至數據管理DMS控制臺,您可以在右下角的jiqiren中單擊返回舊版,返回至舊版數據傳輸控制臺。
  3. 在左側導航欄,單擊數據同步
  4. 同步作業列表頁面頂部,選擇同步的目標實例所屬地域。
  5. 定位至已購買的數據同步實例,單擊配置同步鏈路
  6. 配置同步作業的源實例及目標實例信息。
    配置源和目標實例信息
    項目選項說明
    同步作業名稱DTS會自動生成一個同步作業名稱,建議配置具有業務意義的名稱(無唯一性要求),便于后續識別。
    源實例信息實例類型根據源庫部署位置,您可以選擇RDS實例ECS上的自建數據庫通過專線、VPN網關、智能網關接入的自建數據庫

    本文以ECS上的自建數據庫為例介紹配置流程,其他類型的配置流程與該案例類似。

    實例地區購買數據同步實例時選擇的源實例地域信息,不可變更。
    ECS實例ID選擇自建MySQL所屬的ECS實例ID。
    數據庫類型固定為MySQL,不可變更。
    端口填入自建MySQL的數據庫服務端口。
    數據庫賬號填入自建MySQL的數據庫賬號,該賬號需具備REPLICATION SLAVE、REPLICATION CLIENT及所有同步對象的SELECT權限。
    數據庫密碼填入該數據庫賬號對應的密碼。
    目標實例信息實例類型選擇通過專線/VPN網關/智能網關接入的自建數據庫
    說明 由于DTS暫時不支持直接選擇云消息隊列 Kafka 版,此處將其作為自建Kafka來配置數據同步。
    實例地區購買數據同步實例時選擇的目標實例地域信息,不可變更。
    對端專有網絡選擇目標云消息隊列 Kafka 版實例所屬的專有網絡ID。您可以在云消息隊列 Kafka 版實例的基本信息頁面中查看到專有網絡ID。basicinfo
    數據庫類型選擇為Kafka
    IP地址填入云消息隊列 Kafka 版實例默認接入點中的任意一個IP地址。
    說明 您可以在云消息隊列 Kafka 版實例的基本信息頁面中,獲取默認接入點對應的IP地址。
    端口云消息隊列 Kafka 版實例的服務端口,默認為9092。
    數據庫賬號填入云消息隊列 Kafka 版實例的用戶名。
    說明 如果云消息隊列 Kafka 版實例的實例類型為VPC實例,無需配置數據庫賬號數據庫密碼
    數據庫密碼填入該用戶名對應的密碼。
    Topic
    1. 單擊右側的獲取Topic列表
    2. 下拉選擇具體的Topic名稱。
    Kafka版本根據云消息隊列 Kafka 版實例版本,選擇對應的版本信息。
  7. 單擊頁面右下角的授權白名單并進入下一步
  8. 配置同步對象信息。
    配置同步對象
    配置說明
    同步對象源庫對象區域框中,選擇需要同步的對象(僅支持選擇數據表),然后單擊向右箭頭將其移動到已選對象區域框中。
    說明 DTS會自動將表名映射為配置同步的源和目標實例信息時選擇的Topic名稱。如果需要更換同步的目標Topic(更換后的Topic需是云消息隊列 Kafka 版實例中真實存在的),您可以將鼠標指針放置在要進行名稱映射的表上,并單擊出現的編輯進行調整。
  9. 上述配置完成后,單擊頁面右下角的下一步
  10. 配置同步初始化的高級配置信息。
    數據同步高級設置
    說明 同步初始化類型細分為:結構初始化,全量數據初始化。選中結構初始化全量數據初始化后,DTS會在增量數據同步之前,將源數據庫中待同步對象的結構和存量數據,同步到目標數據庫。
  11. 上述配置完成后,單擊頁面右下角的預檢查并啟動
    說明
    • 在同步作業正式啟動之前,會先進行預檢查。只有預檢查通過后,才能成功啟動同步作業。
    • 如果預檢查失敗,單擊具體檢查項后的提示,查看失敗詳情。
      • 您可以根據提示修復后重新進行預檢查。
      • 如無需修復告警檢測項,您也可以選擇確認屏蔽忽略告警項并重新進行預檢查,跳過告警檢測項重新進行預檢查。
  12. 預檢查對話框中顯示預檢查通過后,關閉預檢查對話框,同步作業將正式開始。
  13. 等待同步作業的鏈路初始化完成,直至處于同步中狀態。
    您可以在數據同步頁面,查看數據同步作業的狀態。查看同步作業狀態