Apache kafka 卡夫卡流:将值连接到数组中

Apache kafka 卡夫卡流:将值连接到数组中,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我有一个kafka流,它完成了KTable中丢失的值(leftjoin做得很好)。 但有时,我必须将每个值连接到一个数组中,我不知道如何正确地进行连接 例如(我以一个家庭为例): 我可以通过Ktable找到父亲和母亲的名字(通过id加入)。 但是对于孩子们,我不知道如何将每个孩子循环到数组中(我不知道有多少孩子) 目前,我为每个孩子创建了新的KStream: stream.flatMapValues(value->value.get(“children”)并且我为每个子对象创建联接。 然后,我必

我有一个kafka流,它完成了KTable中丢失的值(leftjoin做得很好)。 但有时,我必须将每个值连接到一个数组中,我不知道如何正确地进行连接

例如(我以一个家庭为例):

我可以通过Ktable找到父亲和母亲的名字(通过id加入)。 但是对于孩子们,我不知道如何将每个孩子循环到数组中(我不知道有多少孩子)

目前,我为每个孩子创建了新的KStream:
stream.flatMapValues(value->value.get(“children”)
并且我为每个子对象创建联接。 然后,我必须使用groupByKey并减少或聚合我的数据,以使用人名重建输入数据

事实上,这是可行的,但我不确定这是否是实现这一点的最佳方法,我更喜欢避免使用内部kafka存储来进行reduce和aggregation操作

有人有更好的主意吗? 感谢您的帮助

方法是正确的

如果您的KTAT表数据很小,您可以考虑使用<代码> GULKALTABLE < /代码>。这允许使用KStream中的非键字段查找

GlobalKTable

{father: idFather, mother : idMother, children:[{child: id1},{child: id2}]