我应该将3个流A,B和C合并为一个流,所以将其称为ABC并对其进行一些操作。
重要的是,我使用X大小的滑动窗口和Y <= X * 3的Y大小的滑动窗口>
所有流都包含一些我用于联接的通用ID,X,Y是以秒为单位定义的时间参数。
我当前的实现是使用大小为X的翻滚窗口将流A和B合并为AB,然后使用大小为X和Y的滑动窗口将AB与C合并为AB。
在以下情况下,这可能导致错误的答案:流A在时间0接收消息,流B在时间Y + 1接收消息。在这种情况下,两个消息应该
都在同一个滑动窗口中,因为Y + 1我可以使用单个滑动窗口在Flink中进行多流联接,类似于在Spark中联接多个数据框的方式吗?
我应该将3个流A,B和C合并为一个流,因此将其称为ABC并对其进行一些操作。重要的是,我要使用X大小的滑动窗口和Y大小的滑动窗口,其中Y <= ...
我认为在这种情况下,将使用两个滑动窗口连接-一个用于计算AB,另一个用于将这些结果与C连接。您可能遇到的一个问题是,由第一个滑动记录生成的记录上的时间戳join-我不确定Flink将把哪些时间戳记包装您的AB事件的StreamRecords,但是对于普通(非联接)窗口,Flink将结果记录上的时间戳记设置为窗口结束时间。在这种情况下,这可能不是您想要的。如果这是一个问题,则可以在第一个滑动窗口之后放置一个额外的时间戳记分配器,以在第二个联接(使用C)之前适当地设置时间戳记。]