2

谁能帮我回答这个问题,如果有一个 5 秒的时间窗口每 2 秒执行一次聚合操作。第一个 2s 处理 n 和 n+5 之间的窗口中的数据,而第二个 2s 处理 n+2 和 n+7 之间的窗口中的数据。似乎 Flink 在 n+2 到 n+5 的时间内做了重复的工作。是那个吗?任何帮助将不胜感激!

4

2 回答 2

3

Flink 处理的窗口应该是 (n, n+2), (n, n+4), (n+1, n+6), (n+3, n+8)。所以一开始窗户不是5秒宽。它必须“赶上”,因为还没有足够的时间数据可用。该窗口每两秒处理一次,并查看从该点开始的最后 5 秒。

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

于 2015-07-20T12:55:08.600 回答
1

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

于 2015-07-20T09:24:15.657 回答