我正在使用Flink的DataStream API实现MisraGries算法。它使k
个计数器通过递增或递减来记录数据摘要。
使用DataStream API实现算法时,存储此类计数器的最佳方法是什么?现在我只是在运算符中声明了一个HashMap
变量。这是正确的方法还是我需要使用其他一些功能,如州?
答案 0 :(得分:2)
您应该将计数器存储在Flink的托管状态,即keyed state或operator state和enable checkpointing。否则,如果发生故障,信息将丢失。
如果正确使用了状态并且启用了检查点,则Flink会定期检查应用程序的状态。如果发生故障,则重新启动作业并将其状态重置为最新检查点。