云原生數據倉庫AnalyticDB PostgreSQL版(原分析型數據庫PostgreSQL版)為您提供簡單、快速、經濟高效的PB級云端數據倉庫解決方案。通過數據傳輸服務DTS(Data Transmission Service),您可以將PolarDB MySQL版同步至云原生數據倉庫AnalyticDB PostgreSQL,幫助您快速實現對海量數據的即席查詢分析、ETL處理和可視化探索。
前提條件
- PolarDB MySQL版集群已開啟Binlog,詳情請參見如何開啟Binlog。
- PolarDB MySQL版集群中待同步的數據表必須具備主鍵。
- 已創建目標云原生數據倉庫AnalyticDB PostgreSQL實例,詳情請參見創建云原生數據倉庫AnalyticDB PostgreSQL實例。
注意事項
- DTS在執行全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升,在數據庫性能較差、規格較低或業務量較大的情況下(例如源庫有大量慢SQL、存在無主鍵表或目標庫存在死鎖等),可能會加重數據庫壓力,甚至導致數據庫服務不可用。因此您需要在執行數據同步前評估源庫和目標庫的性能,同時建議您在業務低峰期執行數據同步(例如源庫和目標庫的CPU負載在30%以下)。
- 全量初始化過程中,并發INSERT會導致目標實例的表碎片,全量初始化完成后,目標實例的表空間比源集群的表空間大。
費用說明
同步類型 | 鏈路配置費用 |
---|---|
庫表結構同步和全量數據同步 | 不收費。 |
增量數據同步 | 收費,詳情請參見計費概述。 |
同步限制
- 同步對象僅支持數據表。
- 不支持BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT類型的數據同步。
- 暫不支持同步前綴索引,如果源庫存在前綴索引可能導致數據同步失敗。
- 在數據同步時,請勿對源庫的同步對象使用gh-ost或pt-online-schema-change等類似工具執行在線DDL變更,否則會導致同步失敗。
支持同步的SQL操作
- DML操作:INSERT、UPDATE、DELETE。
- DDL操作:ADD COLUMN。 說明 不支持CREATE TABLE操作,如果您需要將新增的表作為同步對象,則需要執行新增同步對象操作。
支持的同步架構
- 1對1單向同步。
- 1對多單向同步。
- 多對1單向同步。
術語對應關系
PolarDB MySQL版 | 云原生數據倉庫AnalyticDB PostgreSQL |
---|---|
Database | Schema |
Table | Table |
操作步驟
- 購買數據同步作業,詳情請參見購買流程。說明 購買時,選擇源實例為PolarDB、目標實例為AnalyticDB PostgreSQL,并選擇同步拓撲為單向同步。
- 登錄數據傳輸控制臺。
- 在左側導航欄,單擊數據同步。
- 在同步作業列表頁面頂部,選擇同步的目標實例所屬地域。
- 定位至已購買的數據同步實例,單擊配置同步鏈路。
- 配置同步通道的源實例及目標實例信息。
類別 配置 說明 無 同步作業名稱 DTS會自動生成一個同步作業名稱,建議配置具有業務意義的名稱(無唯一性要求),便于后續識別。 源實例信息 實例類型 固定為PolarDB實例。 實例地區 購買數據同步實例時選擇的源PolarDB MySQL版集群的地域信息,不可變更。 PolarDB實例ID 選擇PolarDB MySQL版集群ID。 數據庫賬號 填入PolarDB MySQL版集群的數據庫賬號。 說明 該賬號需具備待同步對象的讀權限。數據庫密碼 填入該數據庫賬號的密碼。 目標實例信息 實例類型 固定為AnalyticDB for PostgreSQL,無需設置。 實例地區 購買數據同步實例時選擇的目標實例地域信息,不可變更。 實例ID 選擇云原生數據倉庫AnalyticDB PostgreSQL實例ID。 數據庫名稱 填入云原生數據倉庫AnalyticDB PostgreSQL實例中,待同步的目標表所屬的數據庫名稱。 數據庫賬號 填入云原生數據倉庫AnalyticDB PostgreSQL的初始賬號,詳情請參見創建數據庫賬號。 說明 您也可以填入具備RDS_SUPERUSER權限的賬號,創建方法請參見用戶權限管理。數據庫密碼 填入數據庫賬號的密碼。 - 單擊頁面右下角的授權白名單并進入下一步。說明
- 如果源或目標數據庫是阿里云數據庫實例(例如RDS MySQL、云數據庫MongoDB版等)或ECS上的自建數據庫,DTS會自動將對應地區DTS服務的IP地址添加到阿里云數據庫實例的白名單或ECS的安全規則中,您無需手動添加,請參見DTS服務器的IP地址段。
- DTS任務完成或釋放后,建議您手動刪除添加的DTS服務器IP地址段。
- 配置同步策略及同步對象。
類別 配置 說明 同步策略配置 同步初始化 默認情況下,您需要同時選中結構初始化和全量數據初始化。預檢查完成后,DTS會將源實例中待同步對象的結構及數據在目標實例中初始化,作為后續增量同步數據的基線數據。 目標已存在表的處理模式 - 清空目標表的數據
在預檢查階段跳過同名對象存在性檢查的檢查項目。全量初始化之前將目標表的數據清空。適用于完成同步任務測試后的正式同步場景。
- 忽略報錯并繼續執行
在預檢查階段跳過同名對象存在性檢查的檢查項目。全量初始化時直接追加數據。適用于多張表同步到一張表的匯總同步場景。
同步操作類型 根據業務需求選擇需要同步的操作類型:
- Insert
- Update
- Delete
- AlterTable
選擇同步對象 無 在源庫對象框中單擊待同步的表,然后單擊圖標將其移動至已選擇對象框。
說明- 同步對象的選擇粒度為表。
- 如果需要目標表中的列名稱與源表不同,需要使用DTS的字段映射功能,詳情請參見設置同步對象在目標實例中的名稱。
映射名稱更改 無 如需更改同步對象在目標實例中的名稱,請使用對象名映射功能,詳情請參見庫表列映射。
源表DMS_ONLINE_DDL過程中是否復制臨時表到目標庫 無 如源庫使用數據管理DMS(Data Management Service)執行Online DDL變更,您可以選擇是否同步Online DDL變更產生的臨時表數據。- 是:同步Online DDL變更產生的臨時表數據。說明 Online DDL變更產生的臨時表數據過大,可能會導致同步任務延遲。
- 否:不同步Online DDL變更產生的臨時表數據,只同步源庫的原始DDL數據。說明 該方案會導致目標庫鎖表。
源、目標庫無法連接重試時間 無 當源、目標庫無法連接時,DTS默認重試720分鐘(即12小時),您也可以自定義重試時間。如果DTS在設置的時間內重新連接上源、目標庫,同步任務將自動恢復。否則,同步任務將失敗。說明 由于連接重試期間,DTS將收取任務運行費用,建議您根據業務需要自定義重試時間,或者在源和目標庫實例釋放后盡快釋放DTS實例。 - 清空目標表的數據
- 設置待同步的表在云原生數據倉庫AnalyticDB PostgreSQL中的主鍵列和分布列信息。
- 上述配置完成后,單擊頁面右下角的預檢查并啟動。說明
- 在同步作業正式啟動之前,會先進行預檢查。只有預檢查通過后,才能成功啟動同步作業。
- 如果預檢查失敗,單擊具體檢查項后的,查看失敗詳情。
- 您可以根據提示修復后重新進行預檢查。
- 如無需修復告警檢測項,您也可以選擇確認屏蔽、忽略告警項并重新進行預檢查,跳過告警檢測項重新進行預檢查。
- 在預檢查對話框中顯示預檢查通過后,關閉預檢查對話框,同步作業將正式開始。
- 等待同步作業的鏈路初始化完成,直至處于同步中狀態。您可以在數據同步頁面,查看數據同步作業的狀態。