一、窗口介绍

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. git之常见问题

    1. You are in the middle of a merge -- cannot amend 场景:上一次提交,本次提交与上次修改点是同一个, 覆盖是的提交,产生的错误 解决方案: git ...

  2. uni-app UI效果封装

    1.UI效果 2.操作提示 因为此元素背景色是白色,推荐将页面背景色设置为#f8f8f8 <view class="operation-tip">请扫描设备号</ ...

  3. uniapp 画布

    1.前言 uniapp中的canvas与HTML中的canvas用法并不同,他的使用文档请参考微信小程序画布 2.基本使用 1.准备canvas容器,并为其设置canvas-id和宽高(为了兼容H5, ...

  4. controller返回路径问题

    项目打包后,报错template might not exist or might not be accessible by any of the configured Template Resolv ...

  5. 常回家看看之Tcache Stashing Unlink Attack

    前言: 在开始了解这个攻击手法的前提,需要先了解一个函数也就是calloc函数,众所周知,当libc版本大于等于2.27的时候会引入tcachebin,而Tcache Stashing Unlink ...

  6. GienTech动态|入选软件和信息技术服务名牌企业;荣获城市数字化转型优秀案例;参加第四届深圳国际人工智能展

    ​ 中电金信入选"2023第二届软件和信息技术服务名牌企业" ​ 近日,中国电子信息行业联合会发布了"2023第二届软件和信息技术服务名牌企业"名单,中电金信入 ...

  7. 【MyBatis】学习笔记04:配置文件模板

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) 目录 IDEA配置模板的地方 核心 ...

  8. macOS:无法打开“XXXX”,因为Apple无法检查其是否包含恶意软件。的解决办法

    今天在安装node.js的时候出现了如下错误 从网上找到两种解决方案: 第一种(不建议)在终端输入以下命令即可 sudo spctl --master-disable1按回车键,随后提醒你输入电脑密码 ...

  9. 利用H2的自定义函数更好的支持测试

    在写DAO层的单元测试时,用mock的写法意义不大,因为DAO层的测试更多的关注是Java对象的传递和生成SQL的正确性,所以需要链接真实的数据库. 但是对于单元测试,真实的数据库是很重的,还要依赖于 ...

  10. 跟着源码学IM(八):万字长文,手把手教你用Netty打造IM聊天

    本文作者芋艿,原题"使用 Netty 实现 IM 聊天贼简单",本底价有修订和改动. 一.本文引言 上篇<跟着源码学IM(七):手把手教你用WebSocket打造Web端IM ...