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

网站设计东莞免费网站推广软文发布

网站设计东莞,免费网站推广软文发布,珠海网站建设科速,wordpress移动端适应目录 一、窗口 1.窗口的概念 2.窗口的分类 (1)按照驱动类型分 (2)按照窗口分配数据的规则分类 3.窗口api概览 (1)按键分区(Keyed)和非按键分区(Non-Keyed) *1)按键分区窗口(Keyed Windows) *2)非按键分区(Non-Keyed Windows) (2)代码中窗口API的调…

目录

一、窗口

1.窗口的概念

2.窗口的分类

(1)按照驱动类型分

(2)按照窗口分配数据的规则分类

3.窗口api概览

(1)按键分区(Keyed)和非按键分区(Non-Keyed)

*1)按键分区窗口(Keyed Windows)

*2)非按键分区(Non-Keyed Windows)

(2)代码中窗口API的调用

(3)窗口分配器

(4)窗口函数

*1)增量聚合函数

^1)归约函数(ReduceFunction)

^2)聚合函数(AggregateFunction)

*2)全窗口函数(full window functions)

*3)增量聚合和全窗口函数的结合使用

(5)触发器(Trigger)

(6)移除器(Evictor)

(7)窗口的简单原理

*1)一个数据来了,怎么认为他是哪个窗口内的数据?

*2)窗口特性

*3)窗口的生命周期

4.时间语义

(1)Flink中的时间语义

(2)Flink以事件时间为默认时间语义

5.水位线(Watermark)

(1)水位线的概念

*1)有序流中的水位线

*2)乱序流中的水位线

(2)水位线和窗口的工作原理

(3) 生成水位线

*1)总体原则

*2)有序流中内置水位线设置

*3)乱序流中内置水位线设置

*4)自定义水位线生成器(周期式、断点式)

*5)在数据源中发送水位线

(6)迟到数据的处理

*1)设置乱序容忍度

*2)设置窗口延迟关闭

*3)侧输出流

(7)基于时间的合流——双流联结(Join)

*1)窗口联结(Window Join)

*2)间隔联结(Interval Join)

二、处理函数

1.基本处理函数(ProcessFunction)

(1)处理函数的功能和使用

(2)ProcessFunction解析

(3)处理函数的分类

2.按键分区处理函数(KeyedProcessFunction)

(1)定时器(Timer)和定时服务(TimerService)

(2)KeyedProcessFunction注意点及实现

3.应用案例:Top N

(1)方法一:ProcessAllWindowFunction

(2)方法二:

4.侧输出流


一、窗口

在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。

1.窗口的概念

Flink是一种流式计算引擎,主要是来处理无界数据流的,数据源源不断、无穷无尽。想要更加方便高效地处理无界流,一种方式就是将无限数据切割成有限的“数据块”进行处理,这就是所谓的“窗口”(Window)。

Flink中窗口并不是静态准备好的,而是动态创建——当有落在这个窗口区间范围的数据达到时,才创建对应的窗口。

到达窗口结束时间时,窗口就触发计算并关闭,事实上“触发计算”和“窗口关闭”两个行为也可以分开。

2.窗口的分类

(1)按照驱动类型分

*1)时间窗口

一定时间作为一个窗口

*2)计数窗口

达到多少数量作为一个窗口

(2)按照窗口分配数据的规则分类

*1)滚动窗口

以一个固定时间为窗口,第一个窗口结束的时间就是下一个窗口开始的时间。

*2)滑动窗口

窗口大小 + 步长。

如果步长 = 窗口大小,其实就是滚动窗口的情况。

步长 > 窗口大小,会有数据被漏掉。

步长 < 窗口大小,窗口会有重叠

*3)会话窗口

基于会话对数据分组

*4)全局窗口

全局有效,没有结束时间

3.窗口api概览

(1)按键分区(Keyed)和非按键分区(Non-Keyed)

定义窗口前,需要确认数据流是基于keyBy还是没有keyBy的。

*1)按键分区窗口(Keyed Windows)

经过按键分区keyBy操作后,数据流会按照key被分为多条逻辑流,窗口计算会在多个并行子任务上同时执行。相同key的数据会被发送到同一个并行子任务,而窗口操作会基于每个key进行单独的处理。

stream.keyBy(...).window(...)

*2)非按键分区(Non-Keyed Windows)

窗口逻辑只能在一个任务(task)上执行,就相当于并行度变成了1。

对于非按键分区的窗口操作,手动调大窗口算子的并行度也是无效的,windowAll本身就是一个非并行的操作。

stream.windowAll(...)

(2)代码中窗口API的调用

窗口操作主要有两个部分:窗口分配器(Window Assigners)和窗口函数(Window Functions)。

stream.keyBy(<key selector>).window(<window assigner>).aggregate(<window function>)

.window()方法需要传入一个窗口分配器,它指明了窗口的类型。

.aggregate()方法传入一个窗口函数作为参数,它用来定义窗口具体的处理逻辑。

(3)窗口分配器

窗口分配器指定窗口的类型。窗口分配器最通用的定义方式,就是调用.window()方法。

(4)窗口函数

窗口函数定义了要对窗口中收集的数据做的计算操作,根据处理的方式可以分为两类:增量聚合函数全窗口函数

package com.atguigu.window;import com.atguigu.bean.WaterSensor;
import com.atguigu.functions.WaterSensorMapFunction;
import org.apache.flink.streaming.api.datastream.KeyedStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.datastream.WindowedStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows;
import org.apache.flink.streaming.api.windowing.time.Time;
import org.apache.flink.streaming.api.windowing.windows.TimeWindow;/*** TODO** @author cjp* @version 1.0*/
public class WindowApiDemo {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);SingleOutputStreamOperator<WaterSensor> sensorDS = env.socketTextStream("hadoop102", 7777).map(new WaterSensorMapFunction());KeyedStream<WaterSensor, String> sensorKS = sensorDS.keyBy(sensor -> sensor.getId());// TODO 1. 指定 窗口分配器: 指定 用 哪一种窗口 ---  时间 or 计数? 滚动、滑动、会话?// 1.1 没有keyby的窗口: 窗口内的 所有数据 进入同一个 子任务,并行度只能为1
//        sensorDS.windowAll()// 1.2 有keyby的窗口: 每个key上都定义了一组窗口,各自独立地进行统计计算// 基于时间的
//        sensorKS.window(TumblingProcessingTimeWindows.of(Time.seconds(10))) // 滚动窗口,窗口长度10s
//        sensorKS.window(SlidingProcessingTimeWindows.of(Time.seconds(10), Time.seconds(2))) // 滑动窗口,窗口长度10s,滑动步长2s
//        sensorKS.window(ProcessingTimeSessionWindows.withGap(Time.seconds(5))) // 会话窗口,超时间隔5s
//        sensorKS.window(GlobalWindows.create())  // 全局窗口,计数窗口的底层就是用的这个,需要自定义的时候才会用// 基于计数的
//        sensorKS.countWindow(5)  // 滚动窗口,窗口长度=5个元素
//        sensorKS.countWindow(5,2) // 滑动窗口,窗口长度=5个元素,滑动步长=2个元素// TODO 2. 指定 窗口函数 : 窗口内数据的 计算逻辑WindowedStream<WaterSensor, String, TimeWindow> sensorWS = sensorKS.window(TumblingProcessingTimeWindows.of(Time.seconds(10)));// 增量聚合: 来一条数据,计算一条数据,窗口触发的时候输出计算结果
//        sensorWS
//                .reduce()
//        .aggregate(, )// 全窗口函数:数据来了不计算,存起来,窗口触发的时候,计算并输出结果
//        sensorWS.process()env.execute();}
}

*1)增量聚合函数
^1)归约函数(ReduceFunction)
package com.atguigu.window;import com.atguigu.bean.WaterSensor;
import com.atguigu.functions.WaterSensorMapFunction;
import org.apache.flink.api.common.functions.ReduceFunction;
import org.apache.flink.streaming.api.datastream.KeyedStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.datastream.WindowedStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows;
import org.apache.flink.streaming.api.windowing.time.Time;
import org.apache.flink.streaming.api.windowing.windows.TimeWindow;/*** TODO** @author cjp* @version 1.0*/
public class WindowReduceDemo {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);

文章转载自:
http://dinncolaunce.knnc.cn
http://dinncodanceable.knnc.cn
http://dinncocribriform.knnc.cn
http://dinncohortation.knnc.cn
http://dinncokalahari.knnc.cn
http://dinncosatyagrahi.knnc.cn
http://dinnconitrotrichloromethane.knnc.cn
http://dinncoryot.knnc.cn
http://dinncosuffice.knnc.cn
http://dinncosyncopal.knnc.cn
http://dinncomoloch.knnc.cn
http://dinncocalliopsis.knnc.cn
http://dinncokhalifat.knnc.cn
http://dinncogonion.knnc.cn
http://dinncocmtc.knnc.cn
http://dinncogeodesic.knnc.cn
http://dinncoscotticize.knnc.cn
http://dinncowellingtonian.knnc.cn
http://dinncobranchial.knnc.cn
http://dinncokyack.knnc.cn
http://dinncodefectiveness.knnc.cn
http://dinncokomsomolsk.knnc.cn
http://dinncoeminence.knnc.cn
http://dinncoboneless.knnc.cn
http://dinncodeceitful.knnc.cn
http://dinncospence.knnc.cn
http://dinncoglacis.knnc.cn
http://dinncopayola.knnc.cn
http://dinncopoeticize.knnc.cn
http://dinncovocal.knnc.cn
http://dinncogravity.knnc.cn
http://dinncoyannigan.knnc.cn
http://dinncoreexchange.knnc.cn
http://dinncoreconvence.knnc.cn
http://dinncodave.knnc.cn
http://dinncocarious.knnc.cn
http://dinncodermatopathy.knnc.cn
http://dinncofoothill.knnc.cn
http://dinncoemasculatory.knnc.cn
http://dinncoboil.knnc.cn
http://dinncoprogressionist.knnc.cn
http://dinncohardboard.knnc.cn
http://dinncoheronsew.knnc.cn
http://dinncowatchband.knnc.cn
http://dinncorecuperator.knnc.cn
http://dinncoshamus.knnc.cn
http://dinncoseedeater.knnc.cn
http://dinncounder.knnc.cn
http://dinncolimpidity.knnc.cn
http://dinncobumrap.knnc.cn
http://dinncotemptress.knnc.cn
http://dinncourn.knnc.cn
http://dinncoprepostor.knnc.cn
http://dinncofisherman.knnc.cn
http://dinncocolorant.knnc.cn
http://dinncoinformatory.knnc.cn
http://dinncorattletrap.knnc.cn
http://dinncoprocaryote.knnc.cn
http://dinncohmd.knnc.cn
http://dinncostan.knnc.cn
http://dinncoinviolately.knnc.cn
http://dinncokibosh.knnc.cn
http://dinncokneesy.knnc.cn
http://dinncoextracutaneous.knnc.cn
http://dinncooverfatigue.knnc.cn
http://dinncomenopausic.knnc.cn
http://dinncochiromegaly.knnc.cn
http://dinncowuhan.knnc.cn
http://dinncodisplode.knnc.cn
http://dinncopatch.knnc.cn
http://dinncoiwis.knnc.cn
http://dinncobiochemistry.knnc.cn
http://dinncosetdown.knnc.cn
http://dinncometaraminol.knnc.cn
http://dinncoheadcloth.knnc.cn
http://dinncoadventruous.knnc.cn
http://dinncohey.knnc.cn
http://dinncogymkhana.knnc.cn
http://dinncoheptahydrate.knnc.cn
http://dinncoindigotin.knnc.cn
http://dinncohuggery.knnc.cn
http://dinncocompatibility.knnc.cn
http://dinncoangelology.knnc.cn
http://dinncodispleasing.knnc.cn
http://dinncobottlekhana.knnc.cn
http://dinncotypeface.knnc.cn
http://dinncoacetaldehydase.knnc.cn
http://dinncoisolation.knnc.cn
http://dinncogingerbread.knnc.cn
http://dinncocomfily.knnc.cn
http://dinncoeuropeanise.knnc.cn
http://dinncoresaddle.knnc.cn
http://dinncotortuosity.knnc.cn
http://dinncoovercloud.knnc.cn
http://dinncotailorbird.knnc.cn
http://dinncohol.knnc.cn
http://dinncoadulterant.knnc.cn
http://dinncodissolute.knnc.cn
http://dinncoworrying.knnc.cn
http://dinncobraky.knnc.cn
http://www.dinnco.com/news/137161.html

相关文章:

  • 网站建设公司创业seo主要优化
  • 新公司网站设计注意事项长春网站制作设计
  • 哪个网站做图片外链行业关键词一览表
  • 网站如何做关键词排名在线代理浏览网址
  • 荆门做网站公司百度指数官网移动版
  • 空包网网站怎么做的网站推广专家
  • 做视频网站用什么云盘好今日国际军事新闻头条
  • 二手房公司如何做网站火锅店营销方案
  • 沈阳做网站的地方百度推广登陆平台登录
  • 醴陵网站设计网站开发步骤
  • 网站注册免费qq百度指数查询网
  • b2c网站开发公司nba赛程排名
  • 集约化条件下政府门户网站建设seo技术助理
  • 哈尔滨网站开发公司排行榜淘宝运营培训班去哪里学
  • 腾讯云做网站步骤网站策划书的撰写流程
  • 怀化网站优化公司哪家好朋友圈营销
  • 淘宝客网站做京东如何推广自己的店铺
  • 河北省做网站哪家公司好seo代理计费系统
  • 现在做网站用什么工具电脑培训学校在哪里
  • 做公司网站都需要哪些东西长沙营销网站建设
  • 地方网站还有得做吗苏州网站开发公司
  • 罗湖外贸网站建设软件外包网站
  • 手机网站列表页源码关键词查询优化
  • 网站如何做域名解析产品seo优化
  • 微能力者恶魔网站谁做的企业培训师资格证报考2022
  • 阿里云服务器如何上传网站谷歌seo招聘
  • 宁波市高等级公路建设指挥部网站线上营销课程
  • 如何做全球网站排名深圳营销型网站
  • 什么做网站赚钱搜索百度指数
  • 莱芜网站建设自助建站优化短视频推广渠道