就我而言,我仅使用Flink的可查询状态。特别是,我不在乎检查点。
在发生事件时,我最多只能在X分钟后查询可查询状态。理想情况下,我将删除“旧”状态以节省空间。
这就是为什么我想知道:我可以在一段时间后用信号通知Flink清除自身状态吗?通过配置?通过特定的事件信号?怎么样?
答案 0 :(得分:2)
清除状态的一种方法是在不再需要特定键使用状态对象(例如ValueState对象)时显式调用clear()
。通常是在onTimer()
的{{1}}回调中完成的。
另一种可能的方法是使用CWP web control panel来管理其生命周期。
我还没有尝试过将状态TTL与可查询状态一起使用,但是我看不出它为什么不起作用的任何原因。但是,从Flink 1.7开始,状态TTL仅在访问状态(对于该键)或进行完整的状态快照时才真正清除状态(对于键)。因此,在您的特定情况下,这种状态TTL机制可能不是很有用。