当前位置: 首页 > news >正文

设计公司推荐seo网站优化网站编辑招聘

设计公司推荐,seo网站优化网站编辑招聘,调查问卷 wordpress,北京外贸网站建设背景 AggregateFunction接口是我们经常用的窗口聚合函数,其中有一个merge方法,我们一般情况下也是实现了的,但是你知道吗,其实这个方法只有在你使用会话窗口需要进行窗口合并的时候才需要实现 AggregateFunction.merge方法调用时…

背景

AggregateFunction接口是我们经常用的窗口聚合函数,其中有一个merge方法,我们一般情况下也是实现了的,但是你知道吗,其实这个方法只有在你使用会话窗口需要进行窗口合并的时候才需要实现

AggregateFunction.merge方法调用时机

AggregateFunction.merge方法其实只有在使用会话窗口进行窗口合并的时候才会用到,如下所示
在这里插入图片描述

对应的源码首先查看WindowOperator.processElement方法对要合并的窗口的状态进行合并

public void processElement(StreamRecord<IN> element) throws Exception {final Collection<W> elementWindows =windowAssigner.assignWindows(element.getValue(), element.getTimestamp(), windowAssignerContext);// if element is handled by none of assigned elementWindowsboolean isSkippedElement = true;final K key = this.<K>getKeyedStateBackend().getCurrentKey();if (windowAssigner instanceof MergingWindowAssigner) {MergingWindowSet<W> mergingWindows = getMergingWindowSet();for (W window : elementWindows) {// adding the new window might result in a merge, in that case the actualWindow// is the merged window and we work with that. If we don't merge then// actualWindow == windowW actualWindow =mergingWindows.addWindow(window,new MergingWindowSet.MergeFunction<W>() {@Overridepublic void merge(W mergeResult,Collection<W> mergedWindows,W stateWindowResult,Collection<W> mergedStateWindows)throws Exception {triggerContext.key = key;triggerContext.window = mergeResult;triggerContext.onMerge(mergedWindows);for (W m : mergedWindows) {triggerContext.window = m;triggerContext.clear();deleteCleanupTimer(m);}// 合并窗口的状态windowMergingState.mergeNamespaces(stateWindowResult, mergedStateWindows);}});

继续查看AbstractHeapMergingState.mergeNamespaces方法,

public void mergeNamespaces(N target, Collection<N> sources) throws Exception {if (sources == null || sources.isEmpty()) {return; // nothing to do}final StateTable<K, N, SV> map = stateTable;SV merged = null;// merge the sourcesfor (N source : sources) {// get and remove the next source per namespace/keySV sourceState = map.removeAndGetOld(source);if (merged != null && sourceState != null) {//此处合并状态并调用AggregateFunction.merge方法merged = mergeState(merged, sourceState);} else if (merged == null) {merged = sourceState;}}// merge into the target, if neededif (merged != null) {map.transform(target, merged, mergeTransformation);}
}//真正调用AggregateFunction.merge方法合并自定义的状态
@Override
protected ACC mergeState(ACC a, ACC b) {return aggregateTransformation.aggFunction.merge(a, b);
}

这样AggregateFunction.merge的调用过程就清楚了,实际应用中,我们只需要在使用会话窗口时才需要实现这个方法,其他的基于时间窗口的方式不需要实现这个方法,当然实现了也不会有错

http://www.dt0577.cn/news/28561.html

相关文章:

  • 做网站运营有前途天眼查询个人
  • 网站域名被劫持户外广告
  • 哪有做网站公司互联网营销推广渠道
  • 跨境电商的基本流程南京seo推广公司
  • 织梦cms网站模板修改html网页制作模板
  • 如何做自己的播报网站东营网站seo
  • wordpress 简洁精准的搜索引擎优化
  • 不锈钢餐具做外贸哪个网站好苏州百度快照优化排名
  • 网站建设的功能都需要有哪些推广平台免费b2b网站大全
  • 建设网站需要了解什么网站按天扣费优化推广
  • 网站代理什么意思百度保障平台 客服
  • 给你网站你会怎么做刷关键词的平台
  • 网站建设的注意事项百度帐号登录
  • 商标备案查询官网广东seo推广公司
  • 基于cms系统网站的建设seo电商运营是什么意思
  • 如何完善企业网站建设做百度关键词排名的公司
  • 学校网站开发系统的背景俄罗斯网络攻击数量增长了80%
  • dw网页制作教程家长特色首页关键词优化公司
  • 佛山专业网站建设价格软文写作300字
  • 建设银行网站注销吗最新中高风险地区名单
  • 电商推广渠道有哪些关键词优化教程
  • 江苏省城乡建筑信息网百度搜索引擎优化的方法
  • 可靠的南京网站建设网站搜索优化找哪家
  • 2个淘宝可以做情侣网站么查询友情链接
  • 推进乡村振兴 加快建设农业强国福建键seo排名
  • 西安北郊网站建设公司如何建网址
  • 淘宝联盟怎么样做网站论坛营销
  • 那些网站需要备案网站seo综合诊断
  • 搭建什么网站好谷歌chrome
  • 医院做网站怎么就违规了搜狗识图