我正在使用Java在我的第一个Kafka Stream上工作,本质上,我试图从一个主题读取记录,然后将其中许多记录的值合并到一条记录中,以写入一个单独的主题,即批量将一系列记录合并为一条记录。理想情况下,这批记录将由记录大小或记录数来控制,但此时很高兴获得一个简单的示例!我当时以为KStream.groupBy函数将是解决方案的基础,但无法提出有效的示例
答案 0 :(得分:0)
如果您有一系列事件,并希望基于某个键将其合并到列表中,则可以从以下基本示例开始:
KTable<String, List<Object>> aggregatedMetrics = eventStream
.selectKey((k,v)-> k // Pick your key here)
.groupByKey()
.aggregate(() -> ArrayList::new,
(key, value, aggregate) -> aggregate.add(value), arrayListSerde());