这篇文章主要介绍“JavaFlink窗口触发器Trigger怎么使用”,在日常操作中,相信很多人在JavaFlink窗口触发器Trigger怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaFlink窗口触发器Trigger怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Trigger确定窗口(由窗口分配器形成)何时准备好由窗口函数处理。每个WindowAssigner都带有一个默认值Trigger。如果默认触发器不符合您的需求,您可以使用trigger(…)。一旦触发器确定窗口已准备好进行处理,就会触发,返回状态可以是FIRE或FIRE_AND_PURGE。其中FIRE是触发窗口计算并保留窗口内容,而FIRE_AND_PURGE是触发窗口计算并删除窗口内容。默认情况下,预实现的触发器只是简单地FIRE不清除窗口状态。EventTimeTrigger:通过对比EventTime和窗口的Endtime确定是否触发窗口计算,如果EventTime大于Window EndTime则触发,否则不触发,窗口将继续等待。ProcessTimeTrigger:通过对比ProcessTime和窗口EndTme确定是否触发窗口,如果ProcessTime大于EndTime则触发计算,否则窗口继续等待。ContinuousEventTimeTrigger:根据间隔时间周期性触发窗口或者Window的结束时间小于当前EndTime触发窗口计算。ContinuousProcessingT免费云主机域名imeTrigger:根据间隔时间周期性触发窗口或者Window的结束时间小于当前ProcessTime触发窗口计算。CountTrigger:根据接入数据量是否超过设定的阙值判断是否触发窗口计算。DeltaTrigger:根据接入数据计算出来的Delta指标是否超过指定的Threshold去判断是否触发窗口计算。PurgingTrigger:可以将任意触发器作为参数转换为Purge类型的触发器,计算完成后数据将被清理。NeverTrigger:任何时候都不触发窗口计算主要看看EventTimeTrigger和ProcessingTimeTrigger的源码。在 onElement()方法中,ctx.registerProcessingTimeTimer(window.maxTimestamp())将会注册一个ProcessingTime定时器,时间参数是window.maxTimestamp(),也就是窗口的最终时间,当时间到达这个窗口最终时间,定时器触发并调用 onProcessingTime()方法,在 onProcessingTime() 方法中,return TriggerResult.FIRE 即返回 FIRE,触发窗口中数据的计算,但是会保留窗口元素。需要注意的是ProcessingTimeTrigger类只会在窗口的最终时间到达的时候触发窗口函数的计算,计算完成后并不会清除窗口中的数据,这些数据存储在内存中,除非调用PURGE或FIRE_AND_PURGE,否则数据将一直存在内存中。实际上,Flink中提供的Trigger类,除了PurgingTrigger类,其他的都不会对窗口中的数据进行清除。TumblingProcessingTimeWindows :ProcessingTimeTriggerSlidingProcessingTimeWindows :ProcessingTimeTriggerProcessingTimeSessionWindows:ProcessingTimeTrigger到此,关于“JavaFlink窗口触发器Trigger怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!
本篇内容主要讲解“vue中qs的两个方法怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue中qs的两个方法怎么用”吧! qs的两个方法是:1、stringify方法,用于将对象序列化成url形式的字符串,以…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。