我使用aggregatefunction在10分钟的时间窗口内计算唯一的对象。我想为window函数启用检查点,以防作业失败,我们不会丢失任何累积状态。我已经读过了,包括这篇文章(非常有用)。但是我仍然不太明白我应该如何使用processwindowfunction来保存一些状态变量,这样当我的工作停止并重新启动时,我就不会丢失任何累积的数据了?
我使用aggregatefunction在10分钟的时间窗口内计算唯一的对象。我想为window函数启用检查点,以防作业失败,我们不会丢失任何累积状态。我已经读过了,包括这篇文章(非常有用)。但是我仍然不太明白我应该如何使用processwindowfunction来保存一些状态变量,这样当我的工作停止并重新启动时,我就不会丢失任何累积的数据了?
1条答案
按热度按时间hjzp0vay1#
在你描述的情况下,你什么都不用做。所有需要检查的状态都已经由flink管理。
如果您需要存储结果,以便在以后处理windows时可以引用这些结果,则可以使用另一篇文章中描述的全局状态。但在您的情况下,听起来10分钟窗口的结果并不取决于早期窗口的结果。
如果你想亲身体验一下flink的容错是如何工作的,有一个基于docker的Playground,可以很容易地做一些实验并直接观察发生了什么:请看flink操作Playground。所涉及的应用程序会打开窗口,因此您应该会发现它非常相关。