在配置同步到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。 |
|
按照源端Kafka訊息的key投遞到目標端 Partition | 將源Topic中相同Partition Key的資料,隨機投遞到目標Topic的同一個Partition中。 |
|
以輪詢的方式投遞到目標端 Partition | 將源Topic中的資料,以輪詢的方式隨機投遞到目標Topic的各個Partition中。 |
|
全部投遞至Partition 0 | 將源Topic中的所有資料都投遞到目標Topic的Partition 0。 |
|
源庫為Tair/Redis
策略名稱稱 | 說明 | 優缺點 |
全部投遞至Partition 0 | 將所有資料和DDL資訊都投遞到目標Topic的Partition 0。 |
|
將Redis全量數據和增量數據分別投遞到不同的Partition | 將Redis執行個體的全量資料和增量資料,分別投遞到目標Topic中的各個Partition。 |
|
按Redis Key的hash值投遞到不同Partition | 將Redis執行個體的Key的作為Partition Key來計算Hash值,然後將全量資料和增量資料投遞到目標Topic的各個Partition中。 |
|
源庫為其他資料庫
策略名稱稱 | 說明 | 優缺點 |
全部投遞至Partition 0 | 將所有資料和DDL資訊都投遞到目標Topic的Partition 0。 |
|
按庫名+表名的hash值投遞到不同Partition | 將庫名與表名合并作為Partition Key來計算Hash值,然後將各個表的資料和DDL資訊投遞到目標Topic中的各個Partition。 說明
|
|
按主鍵的hash值投遞到不同Partition | 將表中的列(預設為主鍵,如果無主鍵則使用唯一鍵)作為Partition Key來計算Hash值,然後將不同的行投遞到目標Topic的各個Partition中。您也可以指定單個或多個列作為Partition Key來計算Hash值。 說明
|
|