Flink - 12.CountTrigger && ProcessingTimeTriger 详解

本文深入探讨 Apache Flink 中的两种常见 Window Trigger:CountTrigger 和 ProcessingTimeTrigger。通过自定义示例,详细解释了它们的工作原理,包括触发机制、触发条件和默认行为,并提供了相关的执行日志分析,帮助理解窗口触发的逻辑。最后,文章预告了接下来将结合两者实现的 CountAndTimeTrigger。
摘要由CSDN通过智能技术生成

一.引言

Flink 针对 window 提供了多种自定义 trigger,其中常见的有 CountTrigger 和 ProcessingTimeTrigger,下面通过两个 demo 了解一下两个 Trigger 的内部实现原理与窗口触发的相关知识。

二.辅助知识

介绍上述两个 Trigger 之前,首先重新回顾下之前提高的 trigger 基础知识。

1.Trigger 内部方法

· onElement :元素到达后执行的操作

· onProcessingTime:到达规定处理时间窗口执行的操作

· onEventTime :到达规定事件时间窗口执行的操作

· clear : 清除相关 value 变量

2.Window Trigger 后的操作

· TriggerResult.CONTINUE :跳过,什么都不做

· TriggerResult.FIRE :触发窗口计算

· TriggerResult.PURGE : 清除窗口元素

· TriggerResult.FIRE_AND_PURGE : 触发窗口操作,随后清空窗口元素

3.ReducingStateValue

ReducingStateValue 是一个抽象的统计量,需要用户自己定义其返回类型和对应的 reduce 操作,这里 reduce 并不是减少而是合并的意思,可以理解为 spark 里的 reduce(_ + _) 操作,即针对给定的 object1 和 object2,合成一个单独的 object,定义该变量方法如下:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIT_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值