Apache flink Flink-异步窗口

Apache flink Flink-异步窗口,apache-flink,flink-streaming,Apache Flink,Flink Streaming,这是一个关于flink流媒体的两个问题的话题,基于我自己做的实验,我需要一些澄清。问题是: 当我们在flink中的KeyedStream上使用windows时,apply函数的计算是异步的吗?具体来说,flink会为每个键创建单独的窗口,并独立处理这些窗口吗 假设我们使用apply函数对窗口流进行一些计算,然后创建一个数据流。如果我们对生成的数据流进行一些转换,flink会将整个WindowedStream保存在内存中吗?flink会等到WindowedStream的所有apply函数都完成后,

这是一个关于flink流媒体的两个问题的话题,基于我自己做的实验,我需要一些澄清。问题是:

当我们在flink中的KeyedStream上使用windows时,apply函数的计算是异步的吗?具体来说,flink会为每个键创建单独的窗口,并独立处理这些窗口吗

假设我们使用apply函数对窗口流进行一些计算,然后创建一个数据流。如果我们对生成的数据流进行一些转换,flink会将整个WindowedStream保存在内存中吗?flink会等到WindowedStream的所有apply函数都完成后,再继续对结果流进行转换吗


在我做的所有实验中,我使用事件时间,从文件中读取数据。我在实验中观察到了上述陈述,我需要一些澄清。

Ad.1是的,每个密钥都是独立处理的。这也是windows计算并行化的方式


Ad.2 Flink将保持窗口状态,直到窗口可以发出,再加上一些额外的时间,以防允许延迟。一旦窗口的结果发出,您的案例将转发给下一个操作员,状态将被清除。

感谢您的快速响应。如果数据庞大,会发生什么?这不会导致内存问题吗?另外,如果我们从套接字或卡夫卡读取数据,同样的事情会发生在Aswer2上吗?数据的来源并不重要。从其他运营商的角度来看,它是透明的。至于州的大小,我不喜欢谈论数字,但它可以处理非常大的数字。记住,它只会保持车窗不关闭。如果你有很长的窗口,可能需要几天的时间。此外,通常只存储窗口的聚合,而不是每个元素。