首页 文章

Kafka流:将值连接到数组中

提问于
浏览
1

我有一个kafka流,它完成了KTable的缺失值(leftjoin完美地做到了这一点) . 但有时,我必须将每个值的连接组成一个数组,我不知道如何正确地做到这一点 .

例如(我带一个家庭):

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

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

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

事实上,它是有效的,但我不确定这是最好的方法,我更喜欢避免内部kafka存储,以减少和聚合操作 .

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

1 回答

  • 1

    这种方法很合理 .

    如果您的KTable数据很小,您可以考虑使用 GlobalKTable 进行连接 . 这允许使用KStream中的非键字段来查找 GlobalKTable .

相关问题