在此示例中:https://github.com/confluentinc/kafka-streams-examples/blob/5.1.0-post/src/main/java/io/confluent/examples/streams/pageviewregionexample.java 有一个kstream和ktable连接。
在司机那里https://github.com/confluentinc/kafka-streams-examples/blob/5.1.0-post/src/main/java/io/confluent/examples/streams/pageviewregionexampledriver.java 它将用户发送到用户主题,将页面视图发送到页面视图主题(用户在视图中)。
然而,在这个例子中,我们首先为页面视图主题创建一个kstream,然后为用户配置文件主题创建一个ktable,然后加入它们。假设应用程序在执行join之前不只是从两个流中加载每一段数据,那么如果出现一个视图而用户配置文件还没有保存到表中,会发生什么呢?
1条答案
按热度按时间oyxsuwqo1#
如果在流中的事件出现之前不加载ktable
leftJoin
在ktable站点将有null,并且join
不会返回joinedvalue。建议启动kafka streams应用程序,将数据加载到ktable(某些生产者)使用的主题中,然后开始向stream topic发送事件。
有趣的介绍关于加入Kafka流是在Kafka峰会(旧金山2018),视频可以找到:查看视频和幻灯片禅宗和艺术的流连接什么,何时,为什么