Flink state 的 TTL
- 概述:flink进行实时计算中,会遇到一些状态不断累积,导致状态越来越大的情况。例如:作业中定义了超长的时间窗口,或者在动态表上应用了无限范围的Group By语句,以及执行了没有时间窗口限制的双流join等操作。对于这些情况,经常导致堆内存出现OOM,或者堆外内存RocksDB用量持续增长超出容器配额的上线,造成作业频繁的崩溃。从Flink 1.6版本开始引入State TTL机制,该特性可以允许作业中定义的keyed状态进行超时自动处理,对于TableAPI和SQL模块引入空闲状态保留时间(Idle State Retention Time) 进行状态管理
- Flink State TTL使用方法:
StateTtlConfig ttlConfig = StateTtlConfig.newBuilder(Time.Seconds(1))
.setUpdateType(StateTtlConfig.UpdateType.OnCreateAndWrite)
.setStateVisib