Flink join和connect有什么区别?

时间:2018-10-19 04:29:23

标签: apache-flink

我对这些定义感到困惑。在文档中,似乎在join之后定义了key,但是connect不需要指定key,其结果是connectedStreamconenctedStream可以用来做什么?有没有具体的例子说明我们使用一个而不是另一个?

更多,connected stream的外观如何?

预先感谢

1 个答案:

答案 0 :(得分:3)

与联接操作相比,connect操作更为通用。 Connect确保两个流(有键或无键)在同一位置(CoXXXFunction中的同一并行实例)相遇。

一个流可以是控制流,该控制流可以操纵应用于另一个流的行为。例如,您可以引入新的机器学习模型或其他业务规则。

或者,您可以使用两个经过键控并在同一位置相遇的流的属性来加入。 Flink提供了一些predefined join operators

但是,数据流的加入通常取决于特定于不同用例的行为,例如“您想等待另一个密钥到达多长时间?”,“您是否只寻找一对或更多匹配对?”。 ,或“如果没有匹配记录到达或其他匹配记录不再以状态存储,是否还有后期元素需要特殊处理?”。 connect()允许您根据需要实现自己的联接逻辑。 data Artisans training here解释了一个用于连接的示例。