如何在 Apache Flink 中使用流实现 LEFT OUTER JOIN

How to implement a LEFT OUTER JOIN with streams in Apache Flink

我有左右两个流。 同时 window 假设

我想知道如何在Apache Flink中实现一个LEFT OUTER JOIN,这样处理这个window时得到的结果如下:

(L1, R1), (L2, null)

L1、R1 匹配key(1),L2、R3 不匹配。包含 L2 是因为在左侧

好吧,您应该能够使用 coGroup 运算符获得正确的结果并正确实施 CoGroupFunction。该函数使您可以访问 coGroup 方法中的整个组。 documentation 声明对于 CoGroupFunction 其中一个组可能为空,因此这应该允许您实施外部连接。唯一的问题是组当前是在内存中创建的,因此您需要验证您的组不会增长太大,因为它们可以有效地杀死 JVM。