kafka流应用程序中的多个聚合

时间:2017-09-19 20:16:17

标签: apache-kafka-streams

我有一个从输入主题创建的KStream。 1.在这个KStream上,我正在做一个groupByKey,然后是一个窗口聚合操作 2.之后,在我的代码中,我再次使用与上面相同的KStream,进行映射操作以对键和键进行一些更改。 value,然后执行另一个窗口化聚合操作。

我所有的窗口操作都在30秒的翻滚窗口上。我的观察是第二次聚合在第一次聚合后约30秒开始。有没有办法并行化它们?

1 个答案:

答案 0 :(得分:1)

不确定你的意思是“在第一次聚合后约30秒开始”?你的意思是:

  • 延迟根据处理时间/挂钟时间(您处理输入事件的时间,无论此事件何时在现实世界中发生),或
  • 根据事件时间(在现实世界中实际发生输入事件的时间)的延迟?

预计第二个聚合会延迟(根据挂钟时间),因为必须在map()之后重新分配数据以计算正确的窗口聚合,这需要一些时间。

你的程序结构将是这样的:

KStream -+-> group() -> agg()
         |
         +-> map() -> to() -> REPARTITION-TOPIC -> KStream -> group() -> agg()

你无能为力,但它也不应成为问题,因为它不会影响你的结果的正确性。