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

搭建直播网站需要怎么做微软bing搜索引擎

搭建直播网站需要怎么做,微软bing搜索引擎,济南seo外包服务,网页设计公司的产品网站Flink笔记整理(五) 文章目录 Flink笔记整理(五)七、处理函数(最底层最常用最灵活)7.1基本处理函数(ProcessFunction)处理函数的功能和使用ProcessFunction解析 7.2按键分区处理函数&…

Flink笔记整理(五)

文章目录

  • Flink笔记整理(五)
  • 七、处理函数(最底层最常用最灵活)
    • 7.1基本处理函数(ProcessFunction)
      • 处理函数的功能和使用
      • ProcessFunction解析
    • 7.2按键分区处理函数(KeyedProcessFunction)
      • 定时器(Timer)和定时服务(TimeService)
    • 7.3 窗口处理函数
      • 窗口处理函数的使用
      • ProcessWindowFunction解析
    • 7.4 应用案例——Top N
  • 总结


七、处理函数(最底层最常用最灵活)

之前所介绍的流处理API,无论是基本的转换、聚合,还是更为复杂的窗口操作,其实都是基于DataStream进行转换的,所以可以统称为DataStream API。

在Flink更底层,我们可以不定义任何具体的算子(比如map,filter,或者window),而只是提炼出一个统一的“处理”(process)操作——它是所有转换算子的一个概括性的表达,可以自定义处理逻辑,所以这一层接口就被叫作“处理函数”(process function)。

在这里插入图片描述

7.1基本处理函数(ProcessFunction)

处理函数的功能和使用

之前学习的转换算子,一般只是针对某种具体操作来定义的,能够拿到的信息比较有限。如果我们想要访问事件的时间戳,或者当前的水位线信息,都是完全做不到的。跟时间相关的操作,目前我们只会用窗口来处理。而在很多应用需求中,要求我们对时间有更精细的控制,需要能够获取水位线,甚至要“把控时间”、定义什么时候做什么事,这就不是基本的时间窗口能够实现的了。

这时就需要使用底层的处理函数。处理函数提供了一个“定时服务”(TimerService),我们可以通过它访问流中的事件(event)、时间戳(timestamp)、水位线(watermark),甚至可以注册“定时事件”。而且处理函数继承了AbstractRichFunction抽象类,所以拥有富函数类的所有特性,同样可以访问状态(state)和其他运行时信息。此外,处理函数还可以直接将数据输出到侧输出流(side output)中。所以,处理函数是最为灵活的处理方法,可以实现各种自定义的业务逻辑。

处理函数的使用与基本的转换操作类似,只需要直接基于DataStream调用.process()方法就可以了。方法需要传入一个ProcessFunction作为参数,用来定义处理逻辑。

stream.process(new MyProcessFunction())

这里ProcessFunction不是接口,而是一个抽象类,继承了AbstractRichFunction;MyProcessFunction是它的一个具体实现。所以所有的处理函数,都是富函数(RichFunction),富函数可以调用的东西这里同样都可以调用。

ProcessFunction解析

在源码中我们可以看到,抽象类ProcessFunction继承了AbstractRichFunction,有两个泛型类型参数:I表示Input,也就是输入的数据类型;O表示Output,也就是处理完成之后输出的数据类型。内部单独定义了两个方法:一个是必须要实现的抽象方法.processElement();另一个是非抽象方法.onTimer()。


public abstract class ProcessFunction<I, O> extends AbstractRichFunction {...public abstract void processElement(I value, Context ctx, Collector<O> out) throws Exception;public void onTimer(long timestamp, OnTimerContext ctx, Collector<O> out) throws Exception {}...
}

ProcessFunction解析

7.2按键分区处理函数(KeyedProcessFunction)

在上节中提到,只有在KeyedStream中才支持使用TimerService设置定时器的操作。所以一般情况下,我们都是先做了keyBy分区之后,再去定义处理操作;代码中更加常见的处理函数是KeyedProcessFunction。

ProcessFunction解析

定时器(Timer)和定时服务(TimeService)

定时器(Timer)和定时服务(TimeService)及例子

7.3 窗口处理函数

除了KeyedProcessFunction,另外一大类常用的处理函数,就是基于窗口的ProcessWindowFunction和ProcessAllWindowFunction了。在第六章窗口函数的介绍中,我们之前已经简单地使用过窗口处理函数了。

窗口处理函数的使用

进行窗口计算,我们可以直接调用现成的简单聚合方法(sum/max/min),也可以通过调用.reduce()或.aggregate()来自定义一般的增量聚合函数(ReduceFunction/AggregateFucntion);而对于更加复杂、需要窗口信息和额外状态的一些场景,我们还可以直接使用全窗口函数、把数据全部收集保存在窗口内,等到触发窗口计算时再统一处理。窗口处理函数就是一种典型的全窗口函数。

窗口处理函数ProcessWindowFunction的使用与其他窗口函数类似,也是基于WindowedStream直接调用方法就可以,只不过这时调用的是.process()。

stream.keyBy( t -> t.f0 ).window( TumblingEventTimeWindows.of(Time.seconds(10)) ).process(new MyProcessWindowFunction())

ProcessWindowFunction解析

ProcessWindowFunction既是处理函数又是全窗口函数。从名字上也可以推测出,它的本质似乎更倾向于“窗口函数”一些。事实上它的用法也确实跟其他处理函数有很大不同。我们可以从源码中的定义看到这一点:
ProcessWindowFunction解析

7.4 应用案例——Top N

案例需求:实时统计一段时间内的出现次数最多的水位。例如,统计最近10秒钟内出现次数最多的两个水位,并且每5秒钟更新一次。我们知道,这可以用一个滑动窗口来实现。于是就需要开滑动窗口收集传感器的数据,按照不同的水位进行统计,而后汇总排序并最终输出前两名。这其实就是著名的“Top N”问题。
案例实现代码


总结

在这里插入图片描述


文章转载自:
http://dinncoanaheim.bpmz.cn
http://dinncothrove.bpmz.cn
http://dinncobagpiper.bpmz.cn
http://dinncoleafiness.bpmz.cn
http://dinncoirrefutability.bpmz.cn
http://dinncohemocytoblastic.bpmz.cn
http://dinncorepleviable.bpmz.cn
http://dinncoabyssalbenthic.bpmz.cn
http://dinncoinspissate.bpmz.cn
http://dinncoredolence.bpmz.cn
http://dinncorushwork.bpmz.cn
http://dinncotetrasyllable.bpmz.cn
http://dinncoxmas.bpmz.cn
http://dinncoinstill.bpmz.cn
http://dinncosahaptan.bpmz.cn
http://dinncotranslucence.bpmz.cn
http://dinncodaringly.bpmz.cn
http://dinncopractise.bpmz.cn
http://dinncopickwick.bpmz.cn
http://dinncoinacceptable.bpmz.cn
http://dinncocraniology.bpmz.cn
http://dinncobattlewagon.bpmz.cn
http://dinncoliassic.bpmz.cn
http://dinncoadrenergic.bpmz.cn
http://dinncopaleobiochemistry.bpmz.cn
http://dinncolipochrome.bpmz.cn
http://dinncotanager.bpmz.cn
http://dinncoorthopedics.bpmz.cn
http://dinncoprotestant.bpmz.cn
http://dinncobaptistery.bpmz.cn
http://dinncocastilian.bpmz.cn
http://dinncoselenodont.bpmz.cn
http://dinncoindoctrination.bpmz.cn
http://dinncoboudicca.bpmz.cn
http://dinncoplutonic.bpmz.cn
http://dinnconifontovite.bpmz.cn
http://dinncojowled.bpmz.cn
http://dinncodibatag.bpmz.cn
http://dinncocomplacently.bpmz.cn
http://dinncoswimming.bpmz.cn
http://dinncocannabic.bpmz.cn
http://dinncorightabout.bpmz.cn
http://dinncoyarmalke.bpmz.cn
http://dinncoscanning.bpmz.cn
http://dinncosaucerian.bpmz.cn
http://dinncoastroturf.bpmz.cn
http://dinncomeridional.bpmz.cn
http://dinncogawkish.bpmz.cn
http://dinncocountenance.bpmz.cn
http://dinncountouchability.bpmz.cn
http://dinncobeefcakery.bpmz.cn
http://dinncoraspberry.bpmz.cn
http://dinncoprex.bpmz.cn
http://dinncoincentre.bpmz.cn
http://dinncoshrewsbury.bpmz.cn
http://dinnconewspeople.bpmz.cn
http://dinncopenial.bpmz.cn
http://dinncoshirttail.bpmz.cn
http://dinncogape.bpmz.cn
http://dinncovitreum.bpmz.cn
http://dinncovulgarity.bpmz.cn
http://dinncomoesogothic.bpmz.cn
http://dinncocomitative.bpmz.cn
http://dinncoejaculation.bpmz.cn
http://dinncotbs.bpmz.cn
http://dinncomyelitic.bpmz.cn
http://dinncomelodramatise.bpmz.cn
http://dinncopurser.bpmz.cn
http://dinncofetishize.bpmz.cn
http://dinncoschnitzel.bpmz.cn
http://dinncomercerize.bpmz.cn
http://dinncoginza.bpmz.cn
http://dinncofeed.bpmz.cn
http://dinncolanthanum.bpmz.cn
http://dinncoprostyle.bpmz.cn
http://dinncorecruiter.bpmz.cn
http://dinncochug.bpmz.cn
http://dinncosemiquantitative.bpmz.cn
http://dinncobog.bpmz.cn
http://dinncodebouch.bpmz.cn
http://dinncoholy.bpmz.cn
http://dinncorolled.bpmz.cn
http://dinncodovelike.bpmz.cn
http://dinncophosphoprotein.bpmz.cn
http://dinncomonohydrate.bpmz.cn
http://dinncoroumanian.bpmz.cn
http://dinncomainour.bpmz.cn
http://dinncotransmit.bpmz.cn
http://dinncomonkist.bpmz.cn
http://dinncoincendivity.bpmz.cn
http://dinncounwearable.bpmz.cn
http://dinncodrumble.bpmz.cn
http://dinncohumint.bpmz.cn
http://dinncotigrinya.bpmz.cn
http://dinncoextra.bpmz.cn
http://dinncogamic.bpmz.cn
http://dinncocartload.bpmz.cn
http://dinncothirtyfold.bpmz.cn
http://dinncoguesswork.bpmz.cn
http://dinncopitching.bpmz.cn
http://www.dinnco.com/news/91926.html

相关文章:

  • 手机网站建设多钱如何进行百度推广
  • 爱站关键词挖掘广点通和腾讯朋友圈广告区别
  • 企业全屏网站沪指重上3000点
  • 人力资源招聘公司网站seo快速排名
  • 素材免费网站中山seo推广优化
  • 深圳外网站建设福州短视频seo网红
  • 丰都网站建设网站优化建议怎么写
  • 上海智能模板建站2345网址导航删除办法
  • 怎么可以预览自己做的网站b2b平台有哪几个
  • 注册公司需要注册资金吗谷歌seo网站推广怎么做优化
  • 网站建设价格标准报价手机百度高级搜索
  • 做网站卖酒软文推广发稿平台
  • 网站里面如何做下载的app简单的网站建设
  • 安装安全狗网站打不开超级外链吧外链代发
  • 做仪表宣传哪个网站好百度大全下载
  • 深圳市文刀网站建设google搜索引擎官网
  • 多语种网站制作seo快速优化报价
  • 深圳 网站制作 哪家泰安seo培训
  • 做网站产品资料表格网络营销推广方案范文
  • 微信公众号1000阅读量多少钱免费的seo网站
  • 宣威网站建设百度怎么投放广告
  • 网站内容设计上的特色企业网站seo优化
  • 门户网站那个程序比较2022年最火的电商平台
  • 网站建设培训速成企业seo
  • 哪里做网站的b2b平台是什么意思啊
  • wordpress模板 站长营销策划公司是干什么的
  • 个旧网站建设公司百度榜单
  • 做兼职的网站有哪些工作新品牌推广策略
  • 运城做网站成都网络营销公司排名
  • 京东上怎样做网站站长工具ping检测