Flink 将 TTL 添加到现有值状态
Flink add a TTL to an existing value state
对于我们的一个 Flink 作业,我们发现了一个导致状态泄漏的状态。要解决此问题,我们需要向导致泄漏的状态添加 TTL,但是,我们希望保留现有状态(保存点)。如果我们将 TTL 添加到值状态,我们是否能够使用现有的保存点?谢谢。
不,根据 docs 这行不通:
Trying to restore state, which was previously configured without TTL, using TTL enabled descriptor or vice versa will lead to compatibility failure and StateMigrationException
.
但是,您可以使用 state processor API 来完成此操作。
但是,具体如何处理取决于它的状态、序列化方式以及操作员是否有 UID。
对于我们的一个 Flink 作业,我们发现了一个导致状态泄漏的状态。要解决此问题,我们需要向导致泄漏的状态添加 TTL,但是,我们希望保留现有状态(保存点)。如果我们将 TTL 添加到值状态,我们是否能够使用现有的保存点?谢谢。
不,根据 docs 这行不通:
Trying to restore state, which was previously configured without TTL, using TTL enabled descriptor or vice versa will lead to compatibility failure and
StateMigrationException
.
但是,您可以使用 state processor API 来完成此操作。
但是,具体如何处理取决于它的状态、序列化方式以及操作员是否有 UID。