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

如何在Apache Flink中实现流的左外连接

拓拔野
2023-03-14

我有两条左右流。就在同一时间窗口

  • 左侧流包含元素L1、L2(数字为键)
  • 右流包含元素R1、R3

我想知道如何在Apache Flink中实现LEFT OUTER JOIN,以便处理此窗口时获得的结果如下:

(L1, R1), (L2, null)

L1、R1通过键(1)匹配,L2、R3不匹配。L2包括在内,因为它位于左侧

共有1个答案

冯育
2023-03-14

那么,您应该能够使用coGroup操作符获得正确的结果,并正确实现coGroup函数。通过该函数,您可以在coGroup方法中访问整个组。文档指出,对于CoGroupFunction,其中一个组可能为空,因此这应该允许您实现外部联接。唯一的问题是组当前是在内存中创建的,因此您需要验证组不会变得太大,因为它们可以有效地杀死JVM。

 类似资料:
  • 如何在中实现或。一个简单的例子很有帮助。

  • LEFT OUTER JOIN 左外连接 [ ] 需求:查询所有分类,如果该分类下没有商品,则不显示该分类 [ ] 实现: SELECT `goods`.`id`, `goods`.`title`, `goods`.`price`, `goods`.`cate_id`, `cate`.`id`, `cate`, `cate.title` F

  • 我正在尝试使用Criteria API获取以下查询: 我做到了: 尝试添加 实体看起来像 和 尝试以不同的方式使用联接,但看起来我缺少了一些东西。我得到了orderBy,谓词都是正确的。我正在使用JPA 2.1和Oracle。

  • MariaDB 用于返回条件中指定的左侧表中的所有行,并仅返回满足连接条件的其他表中的行。 也被称为。 语法: 图形表示如下: 注: 上图中,两个图形的左侧表(table1)和右侧表(table2)中间交叉蓝色部分,以及左侧表(table1)就是连接返回的结果集。 为了方便演示,我们需要创建两个表,并插入一些数据 - 插入数据 - 当前表中的行记录如下 - 当前表中的行记录如下 - 示例1 使用以

  • 我正在将数据库从MySQL切换到Postgres SQL。在MySQL中有效的select查询在Postgres中也有效,但类似的delete查询却不能。 我有两个数据表,列出了某些备份文件的位置。现有数据(ed)和新数据(nd)。此语法将挑选出可能说明文件在现有数据表中的位置的现有数据,根据相等的文件名和路径对其进行匹配,但没有关于文件在新数据中的位置的信息: 我希望使用以下语法运行删除查询:

  • 问题内容: 我有一个Hibernate的服务方法,例如:。securityId2由用户传递。每个SecurityContact与一个Contact有多对一的关系,因此Hibernate在运行此查询时会自动调用联接。但是,Hibernate始终运行的联接是内部联接,因此无法正常运行。有没有办法强迫Hibernate在内部生成左外部联接?这是SecurityContact类的代码: 问题答案: 尝试多