我对这些定义感到困惑。在文档中,似乎在join
之后定义了key
,但是connect
不需要指定key
,其结果是connectedStream
。 conenctedStream
可以用来做什么?有没有具体的例子说明我们使用一个而不是另一个?
更多,connected stream
的外观如何?
预先感谢
答案 0 :(得分:3)
与联接操作相比,connect
操作更为通用。 Connect确保两个流(有键或无键)在同一位置(CoXXXFunction
中的同一并行实例)相遇。
一个流可以是控制流,该控制流可以操纵应用于另一个流的行为。例如,您可以引入新的机器学习模型或其他业务规则。
或者,您可以使用两个经过键控并在同一位置相遇的流的属性来加入。 Flink提供了一些predefined join operators。
但是,数据流的加入通常取决于特定于不同用例的行为,例如“您想等待另一个密钥到达多长时间?”,“您是否只寻找一对或更多匹配对?”。 ,或“如果没有匹配记录到达或其他匹配记录不再以状态存储,是否还有后期元素需要特殊处理?”。 connect()
允许您根据需要实现自己的联接逻辑。 data Artisans training here解释了一个用于连接的示例。