【问题标题】:Does data repartition happen when changing keys on Kafka Streams but pushing to new topic?更改 Kafka Streams 上的键但推送到新主题时是否会发生数据重新分区?
【发布时间】:2018-11-14 16:11:47
【问题描述】:

我正在阅读一个中心主题的 Filebeat Json 文档。

根据文件源/路径过滤

flatMap 消息字段,它是一个编码的 Json 并将其序列化为 Json 并提取密钥(是的,我知道我可能在这里有 json 解码异常,我将为此输出空记录)。

推到一个新的话题。


如果消息解析正确并且我得到了密钥并将其输出到新主题,是否会导致重新分区?

基本上我正在做一个无状态的“移动/复制”到一个单独的主题。

【问题讨论】:

  • 为什么要重新分区源主题?
  • 只是问,因为我是新手...基本上我有一个主题,它接收来自所有应用程序的所有日志。它有 18 个分区,我计划让各种消费者/流读取和过滤指定的应用程序并推送到他们自己的主题。
  • 输入主题没有改变。可能有一些中间主题,或者输出主题的分区与输入不同
  • If the message parsed correctly and I got the key and output that to a new topic, will it cause a repartition? -- 不是 100% 确定你的意思。数据写入结果主题时,默认按新键进行分区。但不会有任何额外的重新分区步骤。
  • @MatthiasJ.Sax 这就是我的想法。我很好。我严格将其用作简单的 Json 转换并复制到新主题。

标签: apache-kafka apache-kafka-streams


【解决方案1】:

如果您使用selectKey(...) 并发布结果 KStream,它不会重新分区流。

如果将基于键的运算符(如聚合或连接)应用于结果 KStream,可能会导致内部数据重新分配。

【讨论】:

  • it doesn't repartition the stream -- 好吧,但是当输出主题写入时,它会被新的key分区......
猜你喜欢
  • 1970-01-01
  • 2018-08-03
  • 2019-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多