如何在kafka流中聚合多个分区

fjaof16o  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(376)

假设我有一个主题 events 我在3个分区上发送字符串。每个分区的消息如下所示:

["userId:test1", "userId:test2", "userId:test3", "userId:test4"]

在分区1上。

["userId:test2", "userId:test4", "userId:test6", "userId:test8"]

在2区。

["userId:test3", "userId:test6", "userId:test9", "userId:test12"]

在3区。
我想看到以下聚合的结果。

test1 1
test2 2
test3 2

(顺序无关紧要。)
这可能吗?如果可能的话,我希望你能给我一些建议。否则,我希望你给我第二个选择,这样我可以以类似的方式工作。
谢谢。

4xrmg8kj

4xrmg8kj1#

你可能想看看apacheflumehttps://flume.apache.org/flumeuserguide.html

gajydyqb

gajydyqb2#

是的,你能做到。
我想 "userId:test1" 是一个键值对,即, key="userId" 以及 value="test1" 对于这种情况,您可以将值设置为new key并应用 count() .

StreamsBuilder builder = new StreamsBuilder();
builder.stream("your-input-topic")
       .groupBy((k,v) -> v)
       .count()
       .toStream()
       .to("your-output-topic");

查看文档了解更多详细信息:https://kafka.apache.org/20/documentation/streams/developer-guide/

相关问题