Flink:是否可以在X时间之后删除Queryable状态?

时间:2019-01-23 14:58:28

标签: java scala hdfs apache-flink flink-streaming

就我而言,我仅使用Flink的可查询状态。特别是,我不在乎检查点。

在发生事件时,我最多只能在X分钟后查询可查询状态。理想情况下,我将删除“旧”状态以节省空间。

这就是为什么我想知道:我可以在一段时间后用信号通知Flink清除自身状态吗?通过配置?通过特定的事件信号?怎么样?

1 个答案:

答案 0 :(得分:2)

清除状态的一种方法是在不再需要特定键使用状态对象(例如ValueState对象)时显式调用clear()。通常是在onTimer()的{​​{1}}回调中完成的。

另一种可能的方法是使用CWP web control panel来管理其生命周期。

我还没有尝试过将状态TTL与可查询状态一起使用,但是我看不出它为什么不起作用的任何原因。但是,从Flink 1.7开始,状态TTL仅在访问状态(对于该键)或进行完整的状态快照时才真正清除状态(对于键)。因此,在您的特定情况下,这种状态TTL机制可能不是很有用。