AggregateFunction + WindowProcessFunction 状态上的 Flink 检查点

Flink checkpoint on AggregateFunction + WindowProcessFunction' state

我正在使用 aggregateFunction 在 10 分钟的时间 window 中计算唯一对象。 我想为 window 函数启用检查点,以防万一工作失败,我们不会丢失任何累积状态。 我一直在阅读它,包括这个 。但是我仍然不太明白我应该如何利用 ProcessWindowFunction 来保持一些状态变量,以便当我的工作停止并重新启动时,我不会丢失任何累积的数据?

在您描述的情况下,您无需执行任何操作。所有需要检查点的状态都已经被 Flink 管理了。

其他 post 中描述的全局状态是您需要存储结果时可以使用的东西,以便在以后处理时可以参考它们 windows。但在你的情况下,听起来 10 分钟的结果 window 不依赖于之前 windows.

的结果

如果您想 hands-on 感受一下 Flink 的容错功能是如何真正起作用的,有一个 docker-based 游乐场可以让您轻松地进行一些实验并直接观察发生的情况:请参阅 docker-based =10=]。所涉及的应用程序确实 windowing,因此您应该会发现它非常相关。