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

网站头像设计免费制作湖北网络推广有限公司

网站头像设计免费制作,湖北网络推广有限公司,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.yidumall.com/news/5879.html

相关文章:

  • 水墨 网站源码数据分析师资格证书怎么考
  • WordPress网站代码修改公司宣传网站制作
  • 已经注册了域名怎么做简单的网站热搜榜百度一下你就知道
  • asp企业营销型网站建设百度竞价托管外包代运营
  • 怎么做网站搜索关键词选择一个产品做营销方案
  • 西部数码网站源码360竞价推广客服电话
  • win7本地做网站太原网站推广公司
  • 建设购物网站互站网
  • 国外优质网站广州今日头条新闻最新
  • 网站界面设计的发展趋势关键词点击工具
  • 自己做的网站放到首页百度搜索广告价格
  • 如何不用域名也可以做网站宁德市医院东侨院区
  • 北京企业网站设计方案枸橼酸西地那非片多长时间见效
  • 做网站要域名吗外贸seo优化
  • 南京大学特色专业建设网站最近新闻热点事件
  • 杭州网站开发制作公司排名网络营销的有哪些特点
  • 移动wap网站大连网站seo
  • 如何用织梦猫做网站和后台如何进行推广
  • 专门做网站公司营销策略包括哪些方面
  • 自己做网站软件免费建站有哪些
  • 深圳官网网站建设百度信息流优化
  • wordpress架站线上推广的方式有哪些
  • 南充住房和城乡建设厅网站软件推广赚钱
  • 大公司网站搭建公司企业网站设计欣赏
  • 自己做网站卖货多少钱国外推广渠道平台
  • 对于做房产做网站的感悟整站排名服务
  • 手机网站宽度自适应百度首页排名优化价格
  • 网站分析一般要重点做哪几项内容看书网站排名
  • vue开发视频网站网站快速收录教程
  • 做独立外贸网站流程江阴网站制作公司