從RDS MySQL同步至Tablestore

更新時間:
Copy as MD

Table Store(Tablestore)是阿里雲自研的多模型結構化資料存放區,提供海量結構化資料存放區以及快速的查詢和分析服務。通過Data Transmission Service,您可以將MySQL資料庫(例如自建MySQLRDS MySQL)同步至Tablestore執行個體,協助您輕鬆實現資料的流轉。

前提條件

已建立目標Table Store(Tablestore)執行個體,詳情請參見建立Table Store執行個體

注意事項

  • DTS在執行全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升,您需要在執行資料同步前評估資料同步對源庫和目標庫效能的影響,同時建議您在業務低峰期執行資料同步。
  • 不支援同步DDL操作。如果同步過程中執行了DDL操作,您需要先移除同步對象,然後在Tablestore執行個體中刪除該表,最後新增同步對象
  • 待同步的表數量符合Tablestore執行個體的限制(不超過64個)。如業務確實會超過此限制,請為目標Tablestore執行個體放開此限制。
  • 待同步的表或列名稱符合Tablestore執行個體的命名規範:
    • 表或列的名稱由大小寫字母、數字或底線(_)組成,且只能以字母或底線開頭。
    • 表或列的名稱長度為1~255個字元。

費用說明

同步類型鏈路配置費用
庫表結構同步和全量資料同步不收費。
增量資料同步收費,詳情請參見計費概述

同步初始化類型說明

同步初始化類型 說明
結構初始化 DTS將源庫中待同步對象的結構定義資訊同步至目標庫,目前支援的對象為表。
警告 此情境屬於異構資料庫間的資料同步,DTS在執行結構初始化時資料類型無法完全對應,請謹慎評估資料類型的映射關係對業務的影響,詳情請參見結構初始化涉及的資料類型映射關係
全量資料初始化 DTS將源庫中待同步對象的存量資料,全部同步到目標庫中,作為後續增量同步處理資料的基準資料。
增量資料初始化 DTS在全量資料初始化的基礎上,將源庫的累加式更新資料即時同步至目標庫。

在增量資料初始化階段,DTS支援同步的SQL語句為INSERT、UPDATE、DELETE。

警告 請勿在源庫執行DDL語句,否則將導致資料同步失敗。

準備工作

重要 由於在配置目標庫時需要填寫存取金鑰AccessKey(AK)資訊來執行授權,為避免主帳號泄露AccessKey帶來的安全風險,建議您通過RAM使用者來完成授權和AccessKey的建立。
  1. 建立RAM使用者並授予其AliyunOTSFullAccess許可權(管理Table Store服務的許可權)。
    1. 登入RAM控制台
    2. 建立RAM使用者
    3. 在左側導覽列的人員管理菜單下,單擊使用者
    4. 找到目標RAM使用者,單擊其操作列的添加許可權
    5. 在對話方塊的文字框中輸入AliyunOTSFullAccess,然後單擊選擇搜尋結果中的權限原則名稱。
      選擇許可權地區單擊系統策略頁簽,授權範圍選擇雲帳號全部資源
    6. 單擊確定
    7. 單擊完成
  2. RAM使用者建立存取金鑰AccessKey(AK),詳情請參見建立AccessKey
  3. 可選:如需使用RAM使用者配置資料同步作業,您還需要為該使用者授予AliyunDTSDefaultRole許可權,詳情請參見授予DTS訪問雲資源的許可權
    說明 如果使用主帳號配置資料同步作業,無需執行本步驟。

操作步驟

  1. 購買資料同步作業,詳情請參見購買流程
    說明 購買時,選擇源執行個體為MySQL,目標執行個體為Tablestore,並選擇同步拓撲為單向同步
  2. 登入資料轉送控制台

  3. 在左側導覽列,單擊資料同步

  4. 同步作業列表頁面頂部,選擇同步的目標執行個體所屬地區。

  5. 定位至已購買的資料同步執行個體,單擊配置同步鏈路

  6. 配置資料同步作業的源庫和目標庫資訊。
    類別 配置 說明
    同步作業名稱 DTS會自動產生一個同步作業名稱,建議配置具有業務意義的名稱(無唯一性要求),便於後續識別。
    源執行個體資訊 執行個體類型 選擇RDS執行個體
    執行個體地區 購買資料同步執行個體時選擇的源執行個體地區資訊,不可變更。
    執行個體ID 選擇源RDS執行個體ID。
    資料庫帳號 填入源RDS的資料庫帳號,該帳號需具備REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW和所有同步對象的SELECT許可權。
    說明 當源RDS執行個體的資料庫類型為MySQL 5.5MySQL 5.6時,無需配置資料庫帳號資料庫密碼
    資料庫密碼 填入該資料庫帳號的密碼。
    串連方式 根據需求選擇非加密串連SSL安全連線。如果設定為SSL安全連線,您需要提前開啟RDS執行個體的SSL加密功能,詳情請參見設定SSL加密
    重要

    目前僅中國內地及中國香港地區支援設定串連方式

    目標執行個體資訊 執行個體類型 選擇Tablestore
    執行個體地區 購買資料同步執行個體時選擇的目標執行個體地區資訊,不可變更。
    執行個體ID 選擇目標Tablestore執行個體ID。
    AccessKeyId 填入AccessKeyId資訊,建立方法請參見建立AccessKey
    AccessKeySecrect 填入AccessKeyId對應的AccessKeySecrect資訊。
  7. 單擊頁面右下角的授權白名單並進入下一步

    如果源或目標資料庫是阿里雲資料庫執行個體(例如RDS MySQLApsaraDB for MongoDB等),DTS會自動將對應地區DTS服務的IP地址添加到阿里雲資料庫執行個體的白名單中;如果源或目標資料庫是ECS上的自建資料庫,DTS會自動將對應地區DTS服務的IP地址添加到ECS的安全規則中,您還需確保自建資料庫沒有限制ECS的訪問(若資料庫是叢集部署在多個ECS執行個體,您需要手動將DTS服務對應地區的IP地址添加到其餘每個ECS的安全規則中);如果源或目標資料庫是IDC自建資料庫或其他雲資料庫,則需要您手動添加對應地區DTS服務的IP地址,以允許來自DTS伺服器的訪問。DTS服務的IP地址,請參見DTS伺服器的IP位址區段

    警告

    DTS自動添加或您手動添加DTS服務的公網IP位址區段可能會存在安全風險,一旦使用本產品代表您已理解和確認其中可能存在的安全風險,並且需要您做好基本的安全防護,包括但不限於加強帳號密碼強度防範、限制各網段開放的連接埠號碼、內部各API使用鑒權方式通訊、定期檢查並限制不需要的網段,或者使用通過內網(專線/VPN網關/智能網關)的方式接入。

  8. 配置同步策略及對象資訊。
    1. 配置同步策略。
      配置 說明
      同步初始化 選中結構初始化全量資料初始化增量資料初始化,相關說明請參見同步初始化類型說明
      目標已存在表的處理模式
      • 預檢查並報錯攔截:檢查目標資料庫中是否有同名的表。如果目標資料庫中沒有同名的表,則通過該檢查專案;如果目標資料庫中有同名的表,則在預檢查階段提示錯誤,資料同步作業不會被啟動。
        說明 如果目標庫中同名的表不方便刪除或重新命名,您可以設定同步對象在目標執行個體中的名稱來避免表名衝突。
      • 忽略報錯並繼續執行:跳過目標資料庫中是否有同名表的檢查項。
        警告 選擇為忽略報錯並繼續執行,可能導致資料不一致,給業務帶來風險,例如:
        • 表結構一致的情況下,如果在目標庫遇到與源庫主鍵的值相同的記錄,在初始化階段會保留目標庫中的該條記錄;在增量同步處理階段則會覆蓋目標庫的該條記錄。
        • 表結構不一致的情況下,可能會導致無法初始化資料、只能同步部分列的資料或同步失敗。
      多表歸併
      • 選擇為:通常在OLTP情境中,為提高業務表響應速度,通常會做分庫分表處理。此類情境中,您可以藉助DTS的多表歸併功能將源庫中多個表結構相同的表(即各分表)同步至Tablestore執行個體的同一個表中。
        說明
        • DTS會在Tablestore執行個體的同步目標表中增加__dts_data_source列(類型為varchar)來儲存資料來源。DTS將以<dts資料同步執行個體ID>:<來源資料庫名>.<源表名>的格式寫入列值用於區分表的來源,例如dts********:dtstestdata.customer1
        • 多表歸併功能基於執行個體層級,如果需要讓部分表執行多表歸併,另一部分不執行多表歸併,您需要為這兩批表分別建立資料同步作業。
      • 選擇為:預設選項。
      同步操作類型 根據業務選中需要同步的操作類型,預設情況下都處於選中狀態。
      髒資料處理策略 選擇資料寫入錯誤時的處理策略:
      • 跳過
      • 阻塞
      資料寫入模式
      • 行更新:使用PutRowChange會做行層級更新。
      • 行覆蓋:使用UpdateRowChange會做行層級覆蓋。
      批量寫入方式 批量寫入調用介面。
      • BulkImportRequest:離線寫入。
      • BatchWriteRowRequest:批量寫入。
      建議選擇BulkImportRequest,讀寫效率更高,Tablestore執行個體計費便宜。
      更多設定
      └ 隊列大小 Tablestore執行個體資料寫入進程的隊列長度。
      └ 線程數 Tablestore執行個體資料寫入進程的回調處理線程數。
      └ 並發數 Tablestore執行個體的並發要求節流數。
      └ 分桶數 增量按序寫入時的分桶並發數,適當調大可提升並發寫入能力。
      說明 該值需小於或等於並發數。
    2. 配置同步對象。
      配置 說明
      選擇同步對象 源庫對象框中單擊待遷移的表(不能超過64個表),然後單擊向右小箭頭表徵圖將其移動至已選擇對象框。

      預設情況下,同步對象的名稱保持不變。如果您需要同步對象在目標執行個體上名稱不同,請使用對象名映射功能,詳情請參見設定同步對象在目標執行個體中的名稱

      警告 如果在步驟8選擇多表歸併,選擇源庫的多個表後,您需要通過對象名映射功能,將其改為Tablestore執行個體中的同一個表名,否則將導致資料不一致。
    3. 單擊下一步
  9. 可選:已選擇對象地區框中,將滑鼠指標放置在待同步的表上,並單擊表名後出現的編輯,設定該表中各列在Tablestore執行個體中的資料類型。
    編輯表 對話方塊的列配置地區,單擊目標列的 targetType 下拉框,可選擇的資料類型包括 Integer、Binary、String、Double、Boolean。
  10. 配置待同步的表在Tablestore執行個體中的主鍵列資訊。
    單擊目標表的 定義主鍵,在彈出的對話方塊中設定 主鍵名主鍵類型主鍵順序 等關鍵字段資訊。配置完成後,表格中 定義狀態 列顯示為 已定義,表示主鍵列資訊配置成功。
    說明 關於Tablestore執行個體中主鍵的相關介紹,請參見主鍵
  11. 上述配置完成後,單擊頁面右下角的預檢查並啟動

    說明
    • 在資料同步作業正式啟動之前,會先進行預檢查。只有預檢查通過後,才能成功啟動資料同步作業。

    • 如果預檢查失敗,單擊具體檢查項後的提示表徵圖,查看失敗詳情。根據提示修複後,重新進行預檢查。

  12. 預檢查對話方塊中顯示預檢查通過後,關閉預檢查對話方塊,同步作業將正式開始。

  13. 等待同步作業的鏈路初始化完成,直至處於同步中狀態。

    您可以在資料同步頁面,查看資料同步作業的狀態。查看同步作業狀態