【问题标题】:How to join Kafka KStream to Kstream of 3 Topics如何将 Kafka KStream 加入到 3 个主题的 Kstream
【发布时间】:2018-08-30 12:19:41
【问题描述】:

我有 3 个主题:“BEGIN”、“CONTINUE”和“END” 这三个主题需要加入一个主题消息中,我可以获得由 3 个主题消息组合而成的结果模型。

有很多例子展示了如何加入 2 个主题。 如果有人可以给我一个例子或提示我如何加入或这 3 个主题。

【问题讨论】:

  • 您尝试实现的目标有点不清楚。是否所有消息都具有您要用于加入的 ID?每个应该加入的主题是否只有一条消息,或者它可以是多个(即,来自 CONTINUE)主题?这些事件之间的时间关系是什么?

标签: join apache-kafka apache-kafka-streams


【解决方案1】:

我取决于你想做什么样的加入。正如你所说,你有KStream,你会做两个连续的窗口连接:

KStream stream1 = builder.stream(...);
KStream stream2 = builder.stream(...);
KStream stream3 = builder.stream(...);

KStream joined = stream1.join(stream2, ...)
                        .join(stream3, ...);

【讨论】:

    【解决方案2】:

    在实现 cogroup feature 之前,您需要先将前 2 个主题合并为一个中间主题,然后将其与您的第三个主题合并。

    有关如何执行此操作的示例,请参阅the cogroup KIP

    【讨论】:

      猜你喜欢
      • 2020-04-21
      • 2022-10-24
      • 2018-09-18
      • 2020-05-02
      • 2019-09-28
      • 2017-06-02
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多