在配置迁移到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值。 说明
|
|