我们有一个flink作业,它将在rocksdb后端保持大型键控状态。我们正在使用增量检查点策略。随着时间的推移,国家的规模成了一个问题。我们已经检查了状态ttl解决方案,但它不支持增量rocksdb状态。
如果我真的需要增量检查点,那么解决这个问题的最佳方法是什么?
通常使用的一种方法是在某种ProcessFunction中操作状态,并在不再需要时使用计时器清除状态,例如,如果它已经好几个小时没有被访问。ProcessFunction可以同时具有事件时间和处理时间计时器,因此您可以选择更适合您的用例的计时器。
有关使用计时器清除状态的示例,请参阅Flink培训网站上的过期状态练习。