我是靠谱客的博主 哭泣老鼠,最近开发中收集的这篇文章主要介绍Flink - 13.CountAndProcessingTimeTrigger 基于 Count 和 Time 触发窗口,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一.引言
上一篇文章提到了 CountTrigger && ProcessingTimeTriger,前者 CountTrigger 指定 count 数,当窗口内元素满足逻辑时进行一次触发,后者通过 TimeServer 注册窗口过期时间,到期后进行一次触发,本文自定义 Trigger 实现二者的合并即 Count 和 ProcessingTime 满足任意条件窗口都进行一次触发。
二.代码详解
1.CountAndProcessingTimeTrigger
整体代码如下,主要逻辑包含在 onElement 和 onProcessingTime,前者主要负责根据 count 触发,即实现 CountTrigger 的功能,后者则主要实现 ProcessingTime 的功能,需要预先定义两个 ReduceValue 分别记录 Count 和 Time,ReduceValue 详细用法可参考上文,下面分析主要方法。
class CountAndProcessingTimeTrigger(maxCount: Long, interval: Long) extends Trigger[String, TimeWindow] {
// 条数计数器
val countStateDesc = new ReducingStateDescriptor[Long]("count", new ReduceSum(), classOf[Long])
// 时间
最后
以上就是哭泣老鼠为你收集整理的Flink - 13.CountAndProcessingTimeTrigger 基于 Count 和 Time 触发窗口的全部内容,希望文章能够帮你解决Flink - 13.CountAndProcessingTimeTrigger 基于 Count 和 Time 触发窗口所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复