You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flink作业迭代更新时如何处理未使用的键控状态字段

废弃键控状态的处理与恢复规则

核心处理逻辑

Flink从checkpoint/savepoint恢复作业时,仅会加载和当前代码中声明的状态描述符匹配的状态数据,针对你提到的废弃特征状态,具体行为如下:

  • 废弃状态不会被自动加载到新版本作业中:只要代码中不再声明对应特征的状态描述符,Flink恢复时会直接忽略savepoint/checkpoint中这部分未匹配的状态数据,不会将其写入新作业的状态后端。
  • 原有存量checkpoint/savepoint中的废弃状态不会被删除:旧的快照文件中仍然留存这部分数据,只要你从旧快照恢复、且重新声明了对应的状态描述符,这部分状态仍然可以正常恢复。
  • 新版本作业生成的新快照不再包含废弃状态:作业上线运行后新生成的checkpoint、savepoint中,只会保留当前代码声明的状态数据,废弃状态会被彻底排除在新快照之外,后续从新快照恢复时也无法再找回这部分数据。

附加说明

  • 如果你使用RocksDB增量checkpoint,废弃状态对应的底层数据文件,会在后续增量checkpoint的自动垃圾回收周期中被清理,不会长期占用存储资源。
  • 如果需要主动释放废弃状态占用的存储,可以在上线弃用版本后手动触发一次全量savepoint,清理掉旧的包含废弃状态的快照即可。
  • 状态匹配仅和状态描述符的名称、序列化器配置有关,和你业务层面的特征名没有直接关联,迭代时注意不要误改在用状态的描述符配置,避免出现正常状态无法恢复的问题。

内容的提问来源于stack exchange,提问作者Hu Guang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:48:04