【问题标题】:multiple aggregations in a kafka stream applicationkafka流应用程序中的多个聚合
【发布时间】:2017-09-19 20:16:16
【问题描述】:

我有一个从输入主题创建的 KStream。 1.在这个KStream上,我在做一个groupByKey,然后是一个窗口聚合操作 2. 之后,在我的代码中,我再次使用和上面一样的KStream,做一个map操作,对key&value做一些改变,然后再做一个窗口聚合操作。

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

【问题讨论】:

  • 不确定“在第一次聚合后大约 30 秒开始”是什么意思?挂钟(即运行时)延迟,还是偶数时间?
  • 现在是挂钟时间。

标签: apache-kafka-streams


【解决方案1】:

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

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

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

你的程序结构是这样的:

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

对此您无能为力,但这也应该不是问题,因为它不会影响结果的正确性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 2016-01-14
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多