全部產品
Search
文件中心

Data Transmission Service:AnalyticDB PostgreSQL版同步至阿里雲訊息佇列Kafka版

更新時間:Dec 27, 2025

Data Transmission Service支援AnalyticDB PostgreSQL版執行個體同步至阿里雲訊息佇列Kafka版

說明

當前功能目前正處於邀測階段。如您有相關需求,請提交工單與我們聯絡,以便為您開啟該功能。

適用範圍

  • 目標執行個體阿里雲訊息佇列Kafka版中已建立用於接收同步資料的Topic,請參見步驟一:建立Topic

  • 目標執行個體阿里雲訊息佇列Kafka版的儲存空間須大於源執行個體AnalyticDB PostgreSQL版佔用的儲存空間。

使用須知

源庫限制

類型

限制項

同步前

  • 頻寬要求: 為保證同步速率,請確保源程式庫伺服器的出口頻寬不低於 100 Mb/s。

  • 核心版本: 源庫AnalyticDB PostgreSQL版執行個體的核心版本須為7.2.1.4或更高。

  • 參數配置

    • 邏輯複製: 需開啟邏輯複製功能,即將參數 wal_level 的值設定為logical

    • 高可用配置: 若源執行個體為高可用版,為防止主備切換導致同步中斷,您還需將hot_standbyhot_standby_feedbacksync_replication_slots三個參數的值均設定為on

  • 帳號許可權: 同步帳號需要具備待同步對象的讀取許可權以及REPLICATION許可權。您可以使用命令ALTER USER your_user WITH REPLICATION;進行授權。

  • 長事務影響: 在增量同步處理期間,源庫若存在未提交的長事務,可能導致預寫記錄檔(WAL)堆積,最終佔滿磁碟空間。

  • 同步對象限制

    • 命名規範:待同步的資料庫名稱不能包含短劃線(-),例如dts-testdata

    • 主鍵或唯一約束:待同步的表必須包含主鍵或唯一約束,且約束內的欄位值具有唯一性,否則可能導致目標庫出現重複資料。

    • 分區表:不支援同步分區表的結構。分區表同步後,庫表結構同步到目標端的表會丟失分區資訊,所有表預設建立為非分區表。

    • 單任務資料庫數量:一個同步任務只能同步一個資料庫。如需同步多個資料庫,請為每個資料庫單獨建立同步任務。

    • 任務配置規模:如果您在任務中需要編輯(如列名映射)的表數量超過5000個,建議分批建立多個任務,或直接配置整庫同步,以避免提交任務時發生請求錯誤。

    • 不支援的物件類型:不支援同步跨Schema繼承的表、暫存資料表、系統內部觸發器、部分函數(關於PROCEDURE與FUNCTION的C語言函數和內建函式)、外掛程式(EXTENSION)。

    • 支援的物件類型:支援同步主鍵、唯一約束、CHECK約束,以及部分自訂資料類型(COMPOSITE、ENUM、RANGE)。

同步期間

  • DDL操作限制: 在在庫表結構同步和全量同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致資料同步任務失敗。

    說明

    在全量同步階段,DTS將對源庫進行查詢,這將產生中繼資料鎖,從而可能阻礙來源資料庫的DDL操作執行。

  • DDL同步支援:暫不支援同步源庫的DDL操作。在DTS任務啟動後,源端建立的表及其後續的資料變更將不會同步到目標端。如有需要,請建立同步鏈路。

  • 串連資訊變更:任務運行期間,請勿修改AnalyticDB PostgreSQL版執行個體的串連地址或可用性區域,否則會導致同步任務失敗。

目標庫限制

類型

限制項

同步前

  • 效能影響評估: 全量同步會佔用源庫和目標庫一定的讀寫資源,可能增加資料庫負載。建議您在業務低峰期(如CPU負載低於30%)執行同步任務。

  • 單條訊息大小:Kafka對單條訊息的大小限制為10 MB。若來源資料庫中的單行資料經過轉換後超過此限制,將導致任務中斷。因此,在配置任務時,需過濾掉包含超大欄位的列。如果任務已在同步中,則需修改同步對象,將該表移除後,再次點擊修改同步對象,將該表重新加入,並過濾該表中的大欄位列,以避免同步。

同步期間

  • 目標庫擴縮容: 任務運行期間,如果目標Kafka叢集發生擴縮容(如增減Broker節點),您需要重啟DTS同步任務才能使變更生效。

  • 外部資料寫入: 為保證資料一致性,請勿在同步期間向目標Kafka叢集寫入DTS任務之外的資料,這可能導致資料不一致或任務失敗。

  • 儲存空間增長: 全量同步時,DTS會並發執行寫入操作,可能導致目標端資料產生片段。因此,同步完成後,目標端的儲存佔用可能會大於源端。

  • 任務重啟行為: 對於同時包含全量和增量同步處理的任務,重啟後可能會重新執行全量同步階段。

  • 執行個體運行失敗

    • 恢複機制: DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複過程中,可能會重啟執行個體或調整DTS任務參數(不會對您資料庫中的參數進行修改)。

    • 資料覆蓋風險: 為避免自動回復導致目標庫資料被意外覆蓋,請在業務正式切換到目標庫後,及時停止或釋放不再需要的同步任務。

支援的同步SQL

INSERTUPDATEDELETE

支援同步的對象

  • 基礎對象: SCHEMATABLE

    說明

    包含PRIMARY KEYUNIQUE KEYDATATYPE(內建資料類型)和DEFAULT CONSTRAINT

  • 其他對象: VIEWINDEXPROCEDUREFUNCTIONRULESEQUENCEAGGREGATEOPERATORDOMAIN

費用說明

同步類型

鏈路配置費用

庫表結構同步和全量同步

不收費。

增量同步處理

收費,詳情請參見計費概述

操作步驟

  1. 進入目標地區的同步工作清單頁面(二選一)。

    通過DTS控制台進入

    1. 登入Data Transmission Service控制台

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

    3. 在頁面左上方,選擇同步執行個體所屬地區。

    通過DMS控制台進入

    說明

    實際操作可能會因DMS的模式和布局不同,而有所差異。更多資訊,請參見極簡模式控制台自訂DMS介面布局與樣式

    1. 登入Data Management服務

    2. 在頂部功能表列中,選擇Data + AI > 資料轉送(DTS) > 資料同步

    3. 同步任務右側,選擇同步執行個體所屬地區。

  2. 單擊創建任務,進入任務配置頁面。

  3. 配置源庫及目標庫資訊。

    類別

    配置

    說明

    任務名稱

    DTS會自動產生一個任務名稱,建議配置具有業務意義的名稱(無唯一性要求),便於後續識別。

    源庫資訊

    選擇已有串連資訊

    • 若您需要使用已錄入系統(建立或儲存)的資料庫執行個體,請在下拉式清單中選擇所需的資料庫執行個體,下方的資料庫資訊將自動進行配置。

      說明

      DMS控制台的配置項為選擇DMS資料庫執行個體

    • 若您未將資料庫執行個體錄入到系統,或無需使用已錄入系統的資料庫執行個體,則需要手動設定下方的資料庫資訊。

    資料庫類型

    選擇AnalyticDB PostgreSQL

    接入方式

    選擇雲執行個體

    執行個體地區

    選擇源AnalyticDB PostgreSQL版執行個體所屬地區。

    是否跨阿里雲帳號

    本樣本為同一阿里雲帳號間的同步,選擇不跨帳號

    執行個體ID

    選擇源AnalyticDB PostgreSQL版執行個體ID。

    資料庫名稱

    填入源AnalyticDB PostgreSQL版執行個體中待同步資料所屬資料庫的名稱。

    資料庫帳號

    填入源AnalyticDB PostgreSQL版執行個體的資料庫帳號,需具備待同步對象的讀許可權。

    資料庫密碼

    填入該資料庫帳號對應的密碼。

    目標庫資訊

    選擇已有串連資訊

    • 若您需要使用已錄入系統(建立或儲存)的資料庫執行個體,請在下拉式清單中選擇所需的資料庫執行個體,下方的資料庫資訊將自動進行配置。

      說明

      DMS控制台的配置項為選擇DMS資料庫執行個體

    • 若您未將資料庫執行個體錄入到系統,或無需使用已錄入系統的資料庫執行個體,則需要手動設定下方的資料庫資訊。

    資料庫類型

    選擇Kafka

    接入方式

    選擇雲執行個體

    執行個體地區

    選擇目標阿里雲訊息佇列Kafka版執行個體所屬地區。

    Kafka執行個體ID

    選擇目標阿里雲訊息佇列Kafka版執行個體的ID。

    串連方式

    根據業務及安全需求,選擇非加密串連SCRAM-SHA-256

    Topic

    在下拉框中選擇接收資料的Topic。

    是否使用Kafka Schema Registry

    Kafka Schema Registry是中繼資料提供服務層,提供了一個RESTful介面,用於儲存和檢索Avro Schema。

    • :不使用Kafka Schema Registry。

    • :使用Kafka Schema Registry。您需要輸入Avro Schema在Kafka Schema Registry註冊的URL或IP。

  4. 配置完成後,在頁面下方單擊測試連接以進行下一步

    說明
    • 請確保DTS服務的IP位址區段能夠被自動或手動添加至源庫和目標庫的安全設定中,以允許DTS伺服器的訪問。更多資訊,請參見添加DTS伺服器IP地址白名單

    • 若源庫或目標庫為自建資料庫(接入方式不是雲執行個體),則還需要在彈出的DTS伺服器訪問授權對話方塊單擊測試連接

  5. 配置任務對象。

    1. 對象配置頁面,配置待同步的對象。

      配置

      說明

      同步類型

      固定選中增量同步處理。預設情況下,您還需要同時選中庫表結構同步全量同步。預檢查完成後,DTS會將源執行個體中待同步對象的全量資料在目的地組群中初始化,作為後續增量同步處理資料的基準資料。

      說明

      目標Kafka執行個體的接入方式雲執行個體時,不支援庫表結構同步

      目標已存在表的處理模式

      • 預檢查並報錯攔截:檢查目標資料庫中是否有同名的表。如果目標資料庫中沒有同名的表,則通過該檢查專案;如果目標資料庫中有同名的表,則在預檢查階段提示錯誤,資料同步任務不會被啟動。

        說明

        如果目標庫中同名的表不方便刪除或重新命名,您可以更改該表在目標庫中的名稱,請參見庫表列名映射

      • 忽略報錯並繼續執行:跳過目標資料庫中是否有同名表的檢查項。

        警告

        選擇為忽略報錯並繼續執行,可能導致資料不一致,給業務帶來風險,例如:

        • 表結構一致的情況下,如在目標庫遇到與源庫主鍵或唯一鍵的值相同的記錄:

          • 全量期間,DTS會保留目的地組群中的該條記錄,即源庫中的該條記錄不會同步至目標資料庫中。

          • 增量期間,DTS不會保留目的地組群中的該條記錄,即源庫中的該條記錄會覆蓋至目標資料庫中。

        • 表結構不一致的情況下,可能會導致無法初始化資料、只能同步部分列的資料或同步失敗,請謹慎操作。

      投遞到Kafka的資料格式

      根據需求選擇同步到Kafka執行個體中的資料存放區格式。

      Kafka壓縮格式

      根據需求選擇Kafka壓縮訊息的壓縮格式。

      • LZ4(預設):壓縮率較低,壓縮速率較高。

      • GZIP:壓縮率較高,壓縮速率較低。

        說明

        對CPU的消耗較高。

      • Snappy:壓縮率中等,壓縮速率中等。

      投遞到Kafka Partition策略

      根據業務需求選擇策略

      消息確認機製

      根據業務需求選擇訊息確認機制

      儲存DDL的Topic

      在下拉框中選擇用於儲存DDL資訊的Topic。

      說明

      若未選擇,DDL資訊預設儲存在接收資料的Topic中。

      目標庫對象名稱大小寫策略

      您可以配置目標執行個體中同步對象的庫名、表名和列名的英文大小寫策略。預設情況下選擇DTS預設策略,您也可以選擇與源庫、目標庫預設策略保持一致。更多資訊,請參見目標庫對象名稱大小寫策略

      源庫對象

      源庫對象框中單擊待同步對象,然後單擊向右將其移動至已選擇對象框。

      說明

      同步對象的選擇粒度為表。

      已選擇對象

      本樣本無需額外配置。您可以使用映射功能,設定源表在目標Kafka執行個體中的Topic名稱、Topic的Partition數量或列名等資訊。

      單擊展開查看如何配置目標Kafka執行個體中的對象資訊

      1. 已選擇對象地區框中,將滑鼠指標放置在目標Topic名(表層級)上。

      2. 單擊目標Topic名後出現的編輯

      3. 在彈出的編輯表對話方塊中,配置映射資訊。

        說明
        • 庫層級是編輯Schema對話方塊,且支援配置的參數少;表層級是編輯表對話方塊。

        • 若同步對象的粒度不是整庫,則不支援修改編輯Schema對話方塊的目標庫名目標Topic名稱)和設定建立Topic的Partition數量

        配置

        說明

        目標Topic名稱

        源表同步到的目標Topic名稱,預設為源庫及目標庫配置階段在目標庫資訊選擇的Topic

        重要
        • 目標庫為阿里雲訊息佇列Kafka版執行個體時,填寫的Topic名稱必須在目標Kafka執行個體中真實存在,否則將會導致資料同步失敗。目標庫為自建Kafka資料庫,且同步執行個體包含庫表結構任務時,DTS會嘗試在目標庫中建立您填寫的Topic。

        • 若您修改了目標Topic名稱,資料將會被寫入到您填寫的Topic中。

        過濾條件

        詳情請參見設定過濾條件

        設定建立Topic的Partition數量

        資料寫入到目標Topic時的分區數。

        編輯資料寫入到目標Topic時的列名。

      說明
      • 如需按庫或表層級選擇同步的SQL操作,請在已選擇對象中右擊待同步對象,並在彈出的對話方塊中選擇所需同步的SQL操作。

      • 如果使用了對象名映射功能,可能會導致依賴這個對象的其他對象同步失敗。

    2. 單擊下一步高級配置,進行進階參數配置。

      配置

      說明

      選擇調度該任務的專屬叢集

      DTS預設將任務調度到共用叢集上,您無需選擇。若您希望任務更加穩定,可以購買專屬叢集來運行DTS同步任務。更多資訊,請參見什麼是DTS專屬叢集

      是否開啟資料轉送加密

      開啟加密傳輸後,可能會影響DTS同步效能,請根據實際生產和安全要求按需選擇開啟。

      • (預設)

      源庫、目標庫無法串連後的重試時間

      在同步任務啟動後,若源庫或目標庫串連失敗則DTS會報錯,並會立即進行持續的重試串連,預設持續重試時間為720分鐘,您也可以在取值範圍(10~1440分鐘)內自訂重試時間,建議設定30分鐘以上。如果DTS在設定的重試時間內重新串連上源庫、目標庫,同步任務將自動回復。否則,同步任務將會失敗。

      說明
      • 針對同源或者同目標的多個DTS執行個體,如DTS執行個體A和DTS執行個體B,設定網路重試時間時A設定30分鐘,B設定60分鐘,則重試時間以低的30分鐘為準。

      • 由於串連重試期間,DTS將收取任務運行費用,建議您根據業務需要自訂重試時間,或者在源和目標庫執行個體釋放後儘快釋放DTS執行個體。

      源庫、目標庫出現其他問題後的重試時間

      在同步任務啟動後,若源庫或目標庫出現非串連性的其他問題(如DDL或DML執行異常),則DTS會報錯並會立即進行持續的重試操作,預設持續重試時間為10分鐘,您也可以在取值範圍(1~1440分鐘)內自訂重試時間,建議設定10分鐘以上。如果DTS在設定的重試時間內相關操作執行成功,同步任務將自動回復。否則,同步任務將會失敗。

      重要

      源庫、目標庫出現其他問題後的重試時間的值需要小於源庫、目標庫無法串連後的重試時間的值。

      是否限制全量同步速率

      在全量同步階段,DTS將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升。您可以根據實際情況,選擇是否對全量同步任務進行限速設定(設定每秒查詢源庫的速率QPS每秒全量遷移的行數RPS每秒全量遷移的數據量(MB)BPS),以緩解目標庫的壓力。

      說明
      • 僅當同步類型選擇了全量同步,才有此配置項。

      • 您也可以在同步執行個體運行後,調整全量同步的速率

      是否限制增量同步處理速率

      您也可以根據實際情況,選擇是否對增量同步處理任務進行限速設定(設定每秒增量同步處理的行數RPS每秒增量同步處理的數據量(MB)BPS),以緩解目標庫的壓力。

      環境標籤

      您可以根據實際情況,選擇用於標識執行個體的環境標籤。本樣本無需選擇。

      場景標籤

      您可以根據實際情況,選擇用於標識執行個體的使用情境標籤。情境標籤不會對任務正常運行有任何影響。本樣本無需選擇。

      配置 ETL 功能

      選擇是否配置ETL功能。關於ETL的更多資訊,請參見什麼是ETL

      監控警示

      是否設定警示,當同步失敗或延遲超過閾值後,將通知警示連絡人。

  6. 儲存任務並進行預檢查。

    • 若您需要查看調用API介面配置該執行個體時的參數資訊,請將滑鼠游標移動至下一步儲存任務並預檢查按鈕上,然後單擊氣泡中的預覽OpenAPI參數

    • 若您無需查看或已完成查看API參數,請單擊頁面下方的下一步儲存任務並預檢查

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

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

    • 如果預檢查產生警告:

      • 對於不可以忽略的檢查項,請單擊失敗檢查項後的查看詳情,並根據提示修複後重新進行預檢查。

      • 對於可以忽略無需修複的檢查項,您可以依次單擊點擊確認警示詳情確認屏蔽確定重新進行預檢查,跳過警示檢查項重新進行預檢查。如果選擇屏蔽警示檢查項,可能會導致資料不一致等問題,給業務帶來風險。

  7. 購買執行個體。

    1. 預檢查通過率顯示為100%時,單擊下一步購買

    2. 購買頁面,選擇資料同步執行個體的計費方式、鏈路規格,詳細說明請參見下表。

      類別

      參數

      說明

      資訊配置

      計費方式

      • 預付費(訂用帳戶):在建立執行個體時支付費用。適合長期需求,價格比隨用隨付更實惠,且購買時間長度越長,折扣越多。

      • 後付費(隨用隨付):按小時計費。適合短期需求,用完可立即釋放執行個體,節省費用。

      資源群組配置

      執行個體所屬的資源群組,預設為default resource group。更多資訊,請參見什麼是資源管理

      鏈路規格

      DTS為您提供了不同效能的同步規格,同步鏈路規格的不同會影響同步速率,您可以根據業務情境進行選擇。更多資訊,請參見資料同步鏈路規格說明

      訂購時間長度

      在預付費模式下,選擇訂用帳戶執行個體的時間長度和數量,包月可選擇1~9個月,包年可選擇1年、2年、3年和5年。

      說明

      該選項僅在付費類型為預付費時出現。

    3. 配置完成後,閱讀並勾選《數據傳輸(隨用隨付)服務條款》

    4. 單擊購買並啟動,並在彈出的確認對話方塊,單擊確定

      您可在資料同步介面查看具體任務進度。

常見問題

  • 是否支援修改Kafka壓縮格式

    支援,您可以使用修改同步對象功能進行修改。

  • 是否支援修改消息確認機製

    支援,您可以使用修改同步對象功能進行修改。