全部產品
Search
文件中心

Data Transmission Service:Kafka Partition同步策略說明

更新時間:Feb 07, 2026

在配置同步到Kafka的資料同步作業時,為提升同步的效能,您可以調整Kafka Partition(分區)同步策略,例如根據Hash結果將資料同步至不同的Partition。

Hash演算法

DTS採用Java預設的hashcode演算法來計算Hash值。

配置方法

您需要在配置資料同步作業的對象配置環節中配置投遞到Kafka Partition策略

警告

資料同步作業啟動後,請勿修改目標Topic的Partition數量,否則將導致資料同步任務失敗或下遊消費資料不一致等異常問題。

策略說明

源庫為Kafka

策略名稱稱

說明

優缺點

按照源端Kafka Partition number投遞到目標端對應 Partition

將源Topic中的資料,按照Partition ID投遞到目標Topic對應的Partition中。

重要

須確保目標Topic中包含源Topic的所有Partition。

  • 優勢:可以保障源Topic與目標Topic的訊息分布完全一致。

  • 缺點:目標Topic的Partition需包含源Topic的所有Partition,否則需要手動擴容。

按照源端Kafka訊息的key投遞到目標端 Partition

將源Topic中相同Partition Key的資料,隨機投遞到目標Topic的同一個Partition中。

  • 優勢:目標Topic的Partition無需包含源Topic的所有Partition,並在一定程度上實現資料的規則化分布式投遞。

  • 缺點:資料投遞比較隨機,在消費目標Topic資料時需要修改業務的消費邏輯。

以輪詢的方式投遞到目標端 Partition

將源Topic中的資料,以輪詢的方式隨機投遞到目標Topic的各個Partition中。

  • 優勢:目標Topic的Partition無需包含源Topic的所有Partition,並在一定程度上實現資料的隨機分布式投遞。

  • 缺點:資料投遞比較隨機,在消費目標Topic資料時需要修改業務的消費邏輯。

全部投遞至Partition 0

將源Topic中的所有資料都投遞到目標Topic的Partition 0。

  • 優勢:源Topic中的所有資料都會投遞到目標Topic的同一個Partition中,便於後續的資料消費。

  • 缺點:效能一般。

源庫為Tair/Redis

策略名稱稱

說明

優缺點

全部投遞至Partition 0

將所有資料和DDL資訊都投遞到目標Topic的Partition 0。

  • 優勢:所有對象的建立、更改順序都和源庫保持一致。

  • 缺點:效能一般。

將Redis全量數據和增量數據分別投遞到不同的Partition

將Redis執行個體的全量資料和增量資料,分別投遞到目標Topic中的各個Partition。

  • 優勢:可以將Redis執行個體的資料分別投遞到不同的Partition。

  • 缺點:同一個Key的資料可能會出現在不同的Partition中,效能一般。

按Redis Key的hash值投遞到不同Partition

將Redis執行個體的Key的作為Partition Key來計算Hash值,然後將全量資料和增量資料投遞到目標Topic的各個Partition中。

  • 優勢:可以將Redis執行個體的資料分別投遞到不同的Partition。

  • 缺點:同一個Key的資料可能會出現在不同的Partition中,效能一般。

源庫為其他資料庫

策略名稱稱

說明

優缺點

全部投遞至Partition 0

將所有資料和DDL資訊都投遞到目標Topic的Partition 0。

  • 優勢:所有對象的建立、更改順序都和源庫保持一致。

  • 缺點:效能一般。

按庫名+表名的hash值投遞到不同Partition

將庫名與表名合并作為Partition Key來計算Hash值,然後將各個表的資料和DDL資訊投遞到目標Topic中的各個Partition。

說明
  • 同一個表的資料和DDL資訊會投遞到同一個Partition。

  • 與表無關的DDL資訊(例如CREATE DATABASE)則投遞到Partition 0。

  • 優勢:單個表的建立、變更順序和源端保持一致,效能較好。

  • 缺點:由於不同的表投遞到不同的Partition,表與表之間的先後順序無法保證。

按主鍵的hash值投遞到不同Partition

將表中的列(預設為主鍵,如果無主鍵則使用唯一鍵)作為Partition Key來計算Hash值,然後將不同的行投遞到目標Topic的各個Partition中。您也可以指定單個或多個列作為Partition Key來計算Hash值。

說明
  • 此策略下,DDL資訊預設投遞到目標Topic的Partition 0中。

  • 如果表沒有主鍵和唯一鍵,DTS會將其資料和DDL資訊都投遞到目標Topic的Partition 0。

  • 優勢:該策略效能最好。

  • 缺點:只能保證單條記錄的變更的先後順序,無主鍵表以及多張表之間的先後順序無法保證。