在Kstreams中创建和访问更新表

时间:2017-11-21 11:08:52

标签: apache-kafka apache-kafka-streams

我想访问数据流“A”,检查表“B”的某些条件,最后更新表“B”的状态。

(A,B) ====> check conditions in B ====> finally update B

如何在 kafka流中实现相同的逻辑?从文档我的观察是,对于流数据“A”我们可以使用Kstreams并且为了更新表“B”我们可以使用Ktable。但只有kstreams和ktable之间允许的操作才是连接,它不会更新ktable(而只是将其用作查找)。它还创造了另一个新的kstream(我不想要)。简而言之,我想要参考传入流来访问Ktable和更新表,那么我们如何在kafka流中实现相同的呢?

1 个答案:

答案 0 :(得分:1)

KTable的内容由Streams API维护,您不能 直接更新KTable

我假设您从主题中读取KTable;为此,您通过写入主题更新表,Kafka Streams将通过阅读主题更新表。从主题中读取的KTable旨在包含主题的内容。

当然,写一个主题会立即更新KTable,但会有一些延迟(它是异步更新)。如果您需要同步更新,则无法使用KTable,但可以使用附加状态的.transform()