Flink在会话窗口中加入两个流

时间:2019-10-14 08:25:00

标签: session join stream apache-flink

我有两个流,并希望将第二个流连接到窗口中的第一个流,因为我需要对与会话相关的两个流的连接进行一些计算(这些流中的一个控制会话)。

实际上,从文档中可以看到,(会话)窗口仅允许对单个流进行计算,而不能进行联接。

我尝试使用会话窗口和协处理器功能的组合,但结果与我期望的不完全相同。

有没有一种方法可以合并与Flink中的会话窗口相关的两个流?

1 个答案:

答案 0 :(得分:2)

Flink的DataStream API包含会话窗口联接,其描述为here

您必须查看其语义是否符合您的想法。会话间隔由该时间间隔内没有事件的两个流定义,并且联接是内部联接,因此,如果会话窗口仅包含一个流中的元素,则不会发出输出。

如果那不满足您的需求,那么我建议您使用CoProcessFunction,但是没有会话窗口。换句话说,我建议您可以自己实现所有逻辑。