flink interval join为什么配置的是前后2分钟 ,但是每次都是左流到了4分钟,匹配不上才下发,和预期的不一样

客户反馈现象:

L.time between r.time - interval '1' minute and r.time + intervel '1' minute 实际上是2分钟匹配不上才下发

L.time between r.time - interval '1' minute and r.time 实际上是1分钟30秒匹配不上才下发

L.time between r.time and r.time + intervel'1' minute 实际上是立刻下发

L.time between r.time - interval '2' minute and r.time + intervel '2' minute 实际上是4分钟匹配不上才下发

排查后的结论:配置的上下界是[a,b],那结果为 1.5a + 0.5b 时间之后匹配不上才下发

复制代码
源码分析:由三个属性进行控制 分别是 左流时间,右流时间、 根据左右流时间得到的minCleanUpInterval,为0.5a+0.5b
this.leftRelativeSize = -leftLowerBound;   // 左流的时间 即a
this.rightRelativeSize = leftUpperBound;  // 右流的时间  即b
this.minCleanUpInterval =(this.leftRelativeSize + this.rightRelativeSize) / 2L;   // 最小的区间 为0.5a + 0.5b
this.allowedLateness  = 0;  // 默认为0
if (leftRow) {
    // 若是左流,则为 rowTime + a + this.minCleanUpInterval + 0 + 1L , 即为 1.5a + 0.5b + 1L
    cleanUpTime = rowTime + this.leftRelativeSize + this.minCleanUpInterval + this.allowedLateness + 1L;
    this.registerTimer(ctx, cleanUpTime);
    this.rightTimerState.update(cleanUpTime);
} else {
    // 若是右流,则为 rowTime + b + this.minCleanUpInterval + 0 + 1L , 即为 1.5b+ 0.5a + 1L
    cleanUpTime = rowTime + this.rightRelativeSize + this.minCleanUpInterval + this.allowedLateness + 1L;
    this.registerTimer(ctx, cleanUpTime);
    this.leftTimerState.update(cleanUpTime);
}

源码定位过程:

看到这个问题,立马能想到需要通过源码查找原因,flink join本质是对窗口的操作,窗口在flink底层是基于Timer定时器来实现的,只需在ctx.timerService().registerProcessingTimeTimer()方法处打断点进行debug,即可知道是从哪里进行注册,从而定位到上述的源码类:org.apache.flink.table.runtime.operators.join.interval.TimeIntervalJoin。

就这样,不到5分钟排查出了问题得到原因。

相关推荐
九硕智慧建筑一体化厂家3 分钟前
DDC:看似普通的存在,在楼宇自控系统中却主宰智能建筑高效运行?
大数据·运维·人工智能·网络协议·制造·设计规范
Apache Flink16 分钟前
(二)走进阿里云实时计算Flink版|场景案例篇
大数据·阿里云·flink·云计算
laozhao43242 分钟前
浪潮298.00万中标甘肃能源化工集团财务信息化系统项目
大数据·人工智能
北京软秦科技有限公司44 分钟前
IACheck助力能源电力检测报告智能审核:AI报告审核提升质量与效率
大数据·人工智能·能源
大尚来也1 小时前
渲染性能的隐形守护者:深度解析虚拟DOM的运作机制与优化哲学
大数据
大大大大晴天1 小时前
Flink生产问题排障-DAG膨胀导致JobManagerOOM
大数据·flink
GEO_Huang1 小时前
企业转型无从下手?数谷的定制化 AI 方案能否指点迷津?
大数据·人工智能·aigc·rpa·geo·企业智能体定制·企业ai定制
珠海西格电力2 小时前
零碳园区全面感知体系的建设成本和收益分析包含哪些关键数据?
大数据·数据库·人工智能·智慧城市·能源
QYR_113 小时前
光模块行业全景解析:全球市场规模、格局分布及发展趋势(2026-2032)
大数据·人工智能
九硕智慧建筑一体化厂家4 小时前
什么是楼宇自控?全面解析楼宇自控与楼宇自控系统的作用
大数据·运维·人工智能·网络协议·制造