全部產品
Search
文件中心

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

更新時間:Jul 06, 2024

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

Hash演算法

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

配置方法

您需要在配置資料同步作業的選擇同步對象環節中配置Kafka Partition同步策略。配置案例請參見從RDS同步至自建Kafka叢集,更多相關案例請參見DTS資料同步方案概覽

警告 資料同步作業啟動後,請勿修改目標Topic的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。
  • 優勢:該策略效能最好。
  • 缺點:只能保證單條記錄的變更的先後順序,無主鍵表以及多張表之間的先後順序無法保證。