使用“几乎”相同的键连接两个 Java KStream(Kafka 主题)

问题描述 投票:0回答:0

我有两个卡夫卡主题,其中包含与“警告事件”不同的信息。 要知道主题 A 和主题 B 中的哪些条目相互对应,我必须比较密钥中的序列号、日期和机器,然后加入“否”

重要提示:row_number 可以不同(请参见下面的示例)

主题 A 包含如下值:

键:

{"serial":187,"date":"11/16/2022","row":0,"machine":"Blue"}

价值:

{ "no": 1, "frequency": 0 }

主题 B 包含这样的值:

键:

{"serial":187,"date":"11/16/2022","row":99,"machine":"Blue"}

价值:

{ "warning": "Emergency", "no": 1 } 

我想要的输出主题C通过“否”结合了两个信息:

键:

{"serial":187,"date":"11/16/2022","row":0,"machine":"Blue"}

价值:

{ "no": 1, "frequency": 0, "warning": "Emergency!" }

它应该基本上是主题 A(具有相同的密钥,但添加了主题 B 的警告名称(明文)。

我对卡夫卡完全是个菜鸟,所以我在这个问题上挣扎了很长时间。

我尝试使用 KStream.innerJoints 但当键的一部分(row_number)不必相同时很难获得连接。

java apache-kafka apache-kafka-streams kafka-topic
© www.soinside.com 2019 - 2024. All rights reserved.