一、窗口介绍

1.1 Window:时间窗口

  滚动窗口(Tumbling Window)将事件拆分成固定长度,窗口之间不重叠,窗口长度固定

例:每10s统计过去10s订单数据

  滑动窗口(Sliding Window)按照滑动步长拆分成固定长度,窗口长度固定。根据指定步长(Slide)向前滑动,步长小于窗口则窗口间重叠。

例:每10s统计过去10分钟 订单数据

  会话窗口(Session Window)两个窗口之间有一个间隙(Session Gap),大于间隙没收到消息,则该窗口关闭,窗口不重叠

1.2 数量窗口(Count Windows)

按照一定的数据量作为窗口统计

二、窗口使用

2.1 使用方式

有keyBy ⽤ window() api

没keyBy ⽤ windowAll() api ,并⾏度低

2.2 窗⼝分配器 Window Assigners

定义了如何将元素分配给窗⼝,负责将每条数据分发到正确的window窗⼝上
window() 的参数是⼀个 WindowAssigner,flink本身提供了Tumbling、Sliding 等Assigner

2.3 窗⼝触发器 trigger

⽤来控制⼀个窗⼝是否需要被触发

每个窗⼝分配器WindowAssigner 都有⼀个默认触发器,也⽀持⾃定义触发器

2.4 窗⼝ window function ,对窗⼝内的数据做啥

作用:定义了要对窗⼝中收集的数据做的计算操作
增量聚合函数:aggregate(agg函数,WindowFunction(){ })
        窗⼝保存临时数据,每进⼊⼀个新数据,会与中间数据累加,⽣成新的中间数据,再保存到窗⼝中
        常⻅的增量聚合函数有 reduceFunction、aggregateFunction
        其中:min、max、sum 都是简单的聚合操作,不需要使用⾃定义规则
        例子:AggregateFunction<IN, ACC, OUT>
                IN是输⼊类型,ACC是中间聚合状态类型,OUT是输出类型,是聚合统计当前窗⼝的数据

2.5 全窗⼝函数

apply(new processWindowFunction(){ })

描述:窗⼝先缓存该窗⼝所有元素,等窗⼝的全部数据收集起来后再触发条件计算

常⻅的全窗⼝聚合函数 windowFunction(未来可能弃⽤)、processWindowFunction(可以获取到窗⼝上下⽂ 更多信息)

WindowFunction<IN, OUT, KEY, W extends Window>

IN是输⼊类型,OUT是输出类型,KEY是分组类型,W是时间窗

如果想处理每个元素更底层的API的时候⽤,process(new KeyedProcessFunction() {processElement、onTimer})

2.6 其它知识点

一个窗口内是左闭右开

timeWindow在1.12版本过期,统⼀使⽤window。countWindow没过期

Flink窗口的更多相关文章

  1. 第08讲:Flink 窗口、时间和水印

    Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...

  2. Flink窗口介绍及应用

    Windows是Flink流计算的核心,本文将概括的介绍几种窗口的概念,重点只放在窗口的应用上. 本实验的数据采用自拟电影评分数据(userId, movieId, rating, timestamp ...

  3. flink窗口分类

    窗口分类 按照驱动类型分类 窗口本身是截取有界数据的一种方式,所以窗口一个非常重要的信息就是"怎样截取数据".换句话说,就是以什么标准来开发和结束数据的截取. 按照驱动类型分类主要 ...

  4. 《从0到1学习Flink》—— 介绍Flink中的Stream Windows

    前言 目前有许多数据分析的场景从批处理到流处理的演变, 虽然可以将批处理作为流处理的特殊情况来处理,但是分析无穷集的流数据通常需要思维方式的转变并且具有其自己的术语(例如,"windowin ...

  5. Flink初探-为什么选择Flink

    本文主要记录一些关于Flink与storm,spark的区别, 优势, 劣势, 以及为什么这么多公司都转向Flink. What Is Flink 一个通俗易懂的概念: Apache Flink 是近 ...

  6. 阿里重磅开源全球首个批流一体机器学习平台Alink,Blink功能已全部贡献至Flink

    11月28日,Flink Forward Asia 2019 在北京国家会议中心召开,阿里在会上发布Flink 1.10版本功能前瞻,同时宣布基于Flink的机器学习算法平台Alink正式开源,这也是 ...

  7. Flink去重统计-基于自定义布隆过滤器

    一.背景说明 在Flink中对流数据进行去重计算是常有操作,如流量域对独立访客之类的统计,去重思路一般有三个: 基于Hashset来实现去重 数据存在内存,容量小,服务重启会丢失. 使用状态编程Val ...

  8. 一文搞懂Flink Window机制

    Windows是处理无线数据流的核心,它将流分割成有限大小的桶(buckets),并在其上执行各种计算. 窗口化的Flink程序的结构通常如下,有分组流(keyed streams)和无分组流(non ...

  9. 第05讲:Flink SQL & Table 编程和案例

    Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...

  10. 第06讲:Flink 集群安装部署和 HA 配置

    Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...

随机推荐

  1. 使用JAVA建立稳定的多线程服务器

    侯光敏 (wearebug@etang.com), 简介: 本文详细的介绍了使用Java语言建立一套多线程服务器的过程,该服务器使用对象传递消息,在线程中使用队列机制,使服务器的性能大大提高了.这套服 ...

  2. DSPf28335 --工程模版相关文件

    创建工程需要的两个文件 DSP2833x_common 1.cmd 下图中的两个文件(由TI公司提供的) 1.28335_RAM_lnk.cmd :程序下载到RAM中进行调试和仿真所使用的启动文件. ...

  3. 正也科技案例 | 药企使用S2P深入营销管理数据化建设

    为了获取更*的市场空间,医药健康行业正迎来一波前所未有的产业升级.尽管不少企业取得了许多成绩,但仍面临诸多挑战. 浙江某知名医药公司,在泌尿系统.心脑血管系统及眼科用药领域均拥有强势品牌.其产品更是荣 ...

  4. Vue组件样式穿透

    前情 Vue是目前主流的前端框架之一,我是Vue框架的忠实老用户,平时开发中如果再依赖个第三方组件库那样开发效率就会事半功倍. 第三方组件库可以很大提高开发效率,但是叫会有一些UI效果需要自定义,如想 ...

  5. 前端每日一知之web攻击方式

    脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来

  6. PM-企业数字化转型,数据治理是关键

      企业数字化转型是大势所趋,通过数据治理.数据平台建设.数据分析与建模,把数据变成服务,使数据能在企业内顺畅流动起来,为企业带来巨大的价值.数据是企业数字化转型的重要基础.   数据能创造价值,但数 ...

  7. element 表格增加多选框 ,增加多选

    1. el-table 增加如下代码,就会出现多选框 <el-table-column type="selection" class="checkbox-inp&q ...

  8. 关于Git上传项目报错error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413

    问题 今天用Git上传项目时,最后一步push时命令行报错 error: RPC failed; HTTP 413 curl 22 The requested URL returned error: ...

  9. 在 PdfSharp 中使用私有字体

    在 PdfSharp 中使用私有字体 在 PdfSharp 1.5 中提供了在 Web 服务器上使用私有字体的示例,见:http://www.pdfsharp.net/wiki/(X(1)S(mg0w ...

  10. Superpower:一个基于 C# 的文本解析工具开源项目

    推荐一个文本解析开源工具:Superpower,方便我们解析文本,比如解析日志文件.构建自己的编程语言还是其他需要精确解析和错误报告的场景. 01 项目简介 Superpower 的核心功能是将字符序 ...