Apache kafka 卡夫卡系统重播工具

Apache kafka 卡夫卡系统重播工具,apache-kafka,Apache Kafka,我有一个案例,我们需要将数据从一个主题移动到另一个主题。我在卡夫卡文档“ReplayLogProducer”中看到了一个实用程序。其应按如下所示运行 bin/kafka-run-class.sh kafka.tools.ReplayLogProducer 此工具是否要求源主题上的分区与目标分区上的分区相同?在新主题中,数据保留是如何工作的 如果任何人都能在运行此工具时提供有关要遵循的任何最佳实践的见解或要记住的注意事项,那就太好了。命令行kafka.tools.ReplayLogProduce

我有一个案例,我们需要将数据从一个主题移动到另一个主题。我在卡夫卡文档“ReplayLogProducer”中看到了一个实用程序。其应按如下所示运行

bin/kafka-run-class.sh kafka.tools.ReplayLogProducer
此工具是否要求源主题上的分区与目标分区上的分区相同?在新主题中,数据保留是如何工作的


如果任何人都能在运行此工具时提供有关要遵循的任何最佳实践的见解或要记住的注意事项,那就太好了。

命令行
kafka.tools.ReplayLogProducer
工具不要求分区相同。默认情况下,它使用默认的分区策略:如果存在,则对消息的键进行散列;如果消息没有键,则进行循环。主要用例之一是在更改分区数量或分区策略后将数据从旧主题复制到新主题

它仍然不是,但指定自定义分区器的功能显然是由:您现在可以使用
--property
指定自定义生产者选项。因此,要使用不同的分区策略,请尝试:

bin/kafka-run-class.sh kafka.tools.ReplayLogProducer--property partitioner.class=my.custom.partitioner

新主题中的数据保留将被删除,但新主题使用的是
cleanup.policy
Retention.ms
Retention.bytes
。请注意,如果使用
retention.ms
(默认设置),保留时间与消息的重播时间有关,而不是与原始创建时间有关。这是一个定期复制或
mirrormaker
ReplayLogProducer
没有区别的系统。和的建议应该可以通过邮件的“创建时间”来配置保留,但由于Kafka 0.10尚未发布,因此还不清楚
ReplayLogProducer
是否会保留邮件创建时间