如何在 Apache Flink 中使用流实现 LEFT OUTER JOIN
How to implement a LEFT OUTER JOIN with streams in Apache Flink
我有左右两个流。
同时 window 假设
- 左侧流包含元素L1、L2(编号为
键)
- 右侧流包含元素R1、R3
我想知道如何在Apache Flink中实现一个LEFT OUTER JOIN,这样处理这个window时得到的结果如下:
(L1, R1), (L2, null)
L1、R1 匹配key(1),L2、R3 不匹配。包含 L2 是因为在左侧
好吧,您应该能够使用 coGroup
运算符获得正确的结果并正确实施 CoGroupFunction
。该函数使您可以访问 coGroup
方法中的整个组。 documentation 声明对于 CoGroupFunction
其中一个组可能为空,因此这应该允许您实施外部连接。唯一的问题是组当前是在内存中创建的,因此您需要验证您的组不会增长太大,因为它们可以有效地杀死 JVM。
我有左右两个流。 同时 window 假设
- 左侧流包含元素L1、L2(编号为 键)
- 右侧流包含元素R1、R3
我想知道如何在Apache Flink中实现一个LEFT OUTER JOIN,这样处理这个window时得到的结果如下:
(L1, R1), (L2, null)
L1、R1 匹配key(1),L2、R3 不匹配。包含 L2 是因为在左侧
好吧,您应该能够使用 coGroup
运算符获得正确的结果并正确实施 CoGroupFunction
。该函数使您可以访问 coGroup
方法中的整个组。 documentation 声明对于 CoGroupFunction
其中一个组可能为空,因此这应该允许您实施外部连接。唯一的问题是组当前是在内存中创建的,因此您需要验证您的组不会增长太大,因为它们可以有效地杀死 JVM。