我想访问数据流“A”,检查表“B”的某些条件,最后更新表“B”的状态。
(A,B) ====> check conditions in B ====> finally update B
如何在 kafka流中实现相同的逻辑?从文档我的观察是,对于流数据“A”我们可以使用Kstreams并且为了更新表“B”我们可以使用Ktable。但只有kstreams和ktable之间允许的操作才是连接,它不会更新ktable(而只是将其用作查找)。它还创造了另一个新的kstream(我不想要)。简而言之,我想要参考传入流来访问Ktable和更新表,那么我们如何在kafka流中实现相同的呢?
答案 0 :(得分:1)
KTable
的内容由Streams API维护,您不能
直接更新KTable
。
我假设您从主题中读取KTable
;为此,您通过写入主题更新表,Kafka Streams将通过阅读主题更新表。从主题中读取的KTable
旨在包含主题的内容。
当然,写一个主题会立即更新KTable
,但会有一些延迟(它是异步更新)。如果您需要同步更新,则无法使用KTable
,但可以使用附加状态的.transform()
。