Apache flink 如何理解Flink窗口语义?

Apache flink 如何理解Flink窗口语义?,apache-flink,Apache Flink,有谁能帮我回答这样一个问题:如果有一个5s的时间窗口,每2s执行一次聚合操作。第一个2s处理n和n+5之间窗口中的数据,而第二个2s处理n+2和n+7之间窗口中的数据。看起来弗林克在n+2到n+5的时间内做重复的工作。是吗?任何帮助都将不胜感激 你说得对。如果应用一个函数,可能会重用第一个窗口的结果来计算第二个窗口,那么Flink目前不会利用这个函数。中的每个窗口都是从头开始计算的。但是,这种优化已经在开发日程上,并且将在未来的版本中得到支持。Flink进程的窗口应该是n,n+2,n,n+4,n

有谁能帮我回答这样一个问题:如果有一个5s的时间窗口,每2s执行一次聚合操作。第一个2s处理n和n+5之间窗口中的数据,而第二个2s处理n+2和n+7之间窗口中的数据。看起来弗林克在n+2到n+5的时间内做重复的工作。是吗?任何帮助都将不胜感激

你说得对。如果应用一个函数,可能会重用第一个窗口的结果来计算第二个窗口,那么Flink目前不会利用这个函数。中的每个窗口都是从头开始计算的。但是,这种优化已经在开发日程上,并且将在未来的版本中得到支持。

Flink进程的窗口应该是n,n+2,n,n+4,n+1,n+6,n+3,n+8。因此,在开始时,窗口不是5秒宽。由于还没有足够的可用时间数据,它必须迎头赶上。窗口每两秒处理一次,并查看从该点开始的最后5秒


一般来说,如果幻灯片大小和窗口大小具有最大公约数GCD,则更容易考虑窗口。此外,使用基于窗格的方法,可以更快地评估windows。

谢谢!也许我应该说,第n个2s在m+5和m+5之间处理窗口中的数据,而第n+1个2s在m+2和m+7之间处理窗口中的数据。。。