大家一起来探讨,共同进步。
1、Flink SQL 空闲状态保留时间如何设置?
setIdleStateRetentionTime(Time.minutes(idleStateMinTime),Time.minutes(idleStateMaxTime))
2、空闲状态参数如何配置?
Class KeyedProcessFunctionWithCleanupState<K,IN,OUT> 调用其方法 registerProcessingCleanupTimer
https://ci.apache.org/projects/f ... thCleanupState.html
3、如何理解空闲状态保留时间实现原理?
空闲状态保留时间实现原理分析这一块没看太懂 -- 希望大家补充
4、registerProcessingCleanupTimer 方法如何使用?
-------------------------------
1.判断key为null 或者 this.Current + MinTime > 上一次的Timer ,则为key 注册一个Timer (currenttime + MaxTime) 并删除上一次的Timer ;
注册方法使用调用:registerProcessingCleanupTimer
删除方法调用:cleanupState
-------------------------------
对比来说:就像Streaming中的keyedProcessFunction中的 open processElement onTimer 等方法
open 初始化state
processElement 首先判断state是否为空,如果是数据是第一次或者key为第一次的话,都会进逻辑体,然后为key更新一些属性值,然后围绕这个状态进行后续处理
onTimer 触发事件点
-------------------------------
|