如何从ktable中删除旧密钥

lsmd5eda  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(369)

我有一个制作人,发行Kafka主题密钥为a或b的唱片。
在streams应用程序中,我将每个带有a键的记录平面Map到带有u、v或w键的记录,并将每个带有b键的记录平面Map到带有x、y或z键的记录。
每个平面图操作创建的记录数各不相同。e、 例如,具有密钥a的特定记录可以Map到具有密钥u的一个记录,但是另一个记录可以Map到密钥v和密钥w中的一个。
我想为这些平面Map记录创建一个ktable。但是,我希望这个ktable的键与最后一次平面Map操作为键a和b的每条记录生成的键匹配。
e、 例如,如果在某个特定时刻,ktable有x、y和u的键,然后一个带有键b的记录被发布并Map到一个带有键x的记录,我希望ktable只有x和u的键。
如果有人对我如何做到这一点有任何建议,我将不胜感激。

wn9m85ua

wn9m85ua1#

你的 flatMap() 需要有状态的 flatTransfrom() 用状态存储来实现它。结果 flatTransform() 我们能了解结果吗 KTable 通过 KStream#toTable() 运算符(在2.5版本中添加)。
键值存储区维护来自输入主题的原始数据。每次键更改时,您现在都可以访问旧记录(从存储中)和新记录(输入到) tranform() )并可以发出相应的记录来更新下游 KTable .

相关问题