我有两个流,并希望将第二个流连接到窗口中的第一个流,因为我需要对与会话相关的两个流的连接进行一些计算(这些流中的一个控制会话)。
实际上,从文档中可以看到,(会话)窗口仅允许对单个流进行计算,而不能进行联接。
我尝试使用会话窗口和协处理器功能的组合,但结果与我期望的不完全相同。
有没有一种方法可以合并与Flink中的会话窗口相关的两个流?
答案 0 :(得分:2)
Flink的DataStream API包含会话窗口联接,其描述为here。
您必须查看其语义是否符合您的想法。会话间隔由该时间间隔内没有事件的两个流定义,并且联接是内部联接,因此,如果会话窗口仅包含一个流中的元素,则不会发出输出。
如果那不满足您的需求,那么我建议您使用CoProcessFunction,但是没有会话窗口。换句话说,我建议您可以自己实现所有逻辑。