当前位置: 首页 > 知识库问答 >
问题:

Kafka Streams Stream Table Join-如果表中不存在键怎么办?

刘和昶
2023-03-14

在下面的示例中: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中,它将用户发送到用户主题,并将页面视图发送到页面视图主题(用户在视图中)。

然而,在本例中,我们首先为page views主题创建一个KStream,然后为user profiles主题创建一个KTable,然后将它们连接起来。假设应用程序在执行连接之前并不只是从两个流加载每一段数据,那么如果出现了一个视图,而用户配置文件还没有保存到表中,会发生什么呢?

共有1个答案

公良扬
2023-03-14

如果在流中事件出现之前不加载KTableleftjoin将在KTable站点处为空,且join将不返回JoinedValue。

建议是启动Kafka Streams应用程序,将数据加载到KTable(由某个生产者)使用的主题中,然后开始向流主题发出事件。

关于加入Kafaka流的有趣演示是在Kafaka峰会(旧金山2018年),视频可以找到:查看视频和幻灯片禅和流的艺术加入-什么,什么时候和为什么

 类似资料:
  • 问题内容: 我发现创建一个查询有困难。假设我有一个“产品和品牌”表。我可以使用此命令添加外键, 但是,如果外键不存在,我只需要运行此命令。我需要类似的事情是在不使用名称的情况下删除“外键约束”(如果存在)。 问题答案: 首先,您应该始终命名您的FK以及所有其他约束,以免出现此类麻烦。 但是,如果您不知道FK的名称,则可以使用多个系统视图进行检查:

  • 问题内容: 我很沮丧,我不知道该怎么做。 基本上,我只想创建一个表,但是如果它存在,则需要将其删除并重新创建,而不是将其截断,但是如果不存在,则可以创建它。 有人可以帮忙吗? 谢谢乔治 问题答案: 放在tablename您的发言之前。 该语句将删除该表(如果存在),但如果不存在则不会引发错误。

  • 问题内容: 如果该 对 不存在,如何插入一行? *注意这些不是主键,我的主键设置为自动增量, 尝试插入时忽略但不起作用 表格看起来像: 问题答案: 1)您可以在上添加约束吗?如果是,请添加此约束并使用: 并忽略产生警告(或将替换为) 2)如果您不能添加这样的约束(例如,有时您希望允许这样的重复项而其他时候则不允许),则可以使用以下方法:

  • 在Thymeleaf中执行简单-的最佳方法是什么? 我想在Thymeleaf中达到与 你能提出一个更好的方法来实现它吗?

  • 问题内容: 我正在尝试创建表(如果尚不存在)。我目前正在检查它是否首先存在,并且该查询是否不返回任何内容,然后插入。有没有一种方法可以只检查同一条语句,因此我不必将其分解为单独的查询? 这就是我目前所拥有的。 这是我要的东西。 问题是,您不能在语句中添加一个。 问题答案: 是的,Oracle没有该功能真是可惜。我敢肯定会有一天。在此之前,如果您想编写一个PL / SQL包装器,为什么不那样做:

  • 问题内容: 任何人都可以指出我仅在数据库中当前不存在表时才能使用的正确语法吗? 我目前正在编程Java GUI,以便连接到Oracle并在数据库上执行语句,我想知道是否将其实现为Java约束还是SQLPlus约束。 问题答案: 通常,检查表是否存在没有多大意义,因为不应在运行时创建对象,而应用程序应知道在安装时创建了哪些对象。如果这是安装的一部分,那么您应该知道过程中任何时候存在哪些对象,因此您无