一文讲解Flink1.9 SQL空闲状态保留时间实现原理

查看数: 6046 | 评论数: 2 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-12-31 16:14

正文摘要:

问题导读: 1、Flink SQL 空闲状态保留时间如何设置? 2、空闲状态参数如何配置? 3、如何理解空闲状态保留时间实现原理? 4、registerProcessingCleanupTimer 方法如何使用? 有个点需要注意, ...

回复

feng01301218 发表于 2020-1-2 09:38:41
一文讲解Flink1.9 SQL空闲状态保留时间实现原理
若无梦何远方 发表于 2020-1-2 09:08:25
大家一起来探讨,共同进步。
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 触发事件点
-------------------------------
关闭

推荐上一条 /2 下一条