Flink window详解

楼高2年前技术文章552

一、窗口(window)

image.png

一般真实的流都是无界的,如果是无界怎样处理无界的数据

可以把无限的数据流进行切分,得到有限的数据集进行处理 —— 也 就是得到有界流 

窗口(window)就是将无限流切割为有限流的一种方式,它会将流 数据分发到有限大小的桶(bucket)中进行分析

二、window类型

1.时间窗口(Time Window) 

滚动时间窗口 

滑动时间窗口 

会话窗口 

2.计数窗口(Count Window) 

滚动计数窗口 

滑动计数窗口

滚动窗口:将数据依据固定的窗口长度对数据进行切分 时间对齐,窗口长度固定,没有重叠

滑动窗口:是固定窗口的更广义的一种形式,滑动窗口由固定的窗口 长度和滑动间隔组成 窗口长度固定,可以有重叠

会话窗口:由一系列事件组合一个指定时间长度的 timeout 间隙组成,也就 是一段时间没有接收到新数据就会生成新的窗口,特点:时间无对齐

三、window API

1.window方法 

使用 .window() 来定义一个窗口,然后基于这个 window 去做一些聚 合或者其它处理操作。注意 window () 方法必须在 keyBy 之后才能用。 

Flink 提供了更加简单的 .timeWindow 和 .countWindow 方法,用于定义 时间窗口和计数窗口。

2.窗口分配器

window() 方法接收的输入参数是一个 WindowAssigner 

WindowAssigner 负责将每条输入的数据分发到正确的 window 中 

Flink 提供了通用的 WindowAssigner 

滚动窗口(tumbling window) 

滑动窗口(sliding window)

会话窗口(session window)

全局窗口(global window)

3.窗口函数

window function 定义了要对窗口中收集的数据做的计算操作 

可以分为两类:

增量聚合函数(incremental aggregation functions) 

(1)每条数据到来就进行计算,保持一个简单的状态 

(2)ReduceFunction, AggregateFunction 

全窗口函数(full window functions) 

(1)先把窗口所有数据收集起来,等到计算的时候会遍历所有数据 

(2)ProcessWindowFunction,WindowFunction

四、其它可选 API 

(1).trigger() —— 触发器:定义 window 什么时候关闭,触发计算并输出结果 

(2).evictor() —— 移除器:定义移除某些数据的逻辑 

(3).allowedLateness() —— 允许处理迟到的数据

(4).sideOutputLateData() —— 将迟到的数据放入侧输出流 

(5).getSideOutput() —— 获取侧输出流

相关文章

MySQL运维实战之备份和恢复(8.5)xtrabackup恢复增量备份

恢复增量备份时,需要先对基础全量备份进行恢复,然后再依次按增量备份的时间进行恢复。这个例子中,相关备份文件的目录结构如下:/data/backup ├── full │ &nb...

借助cwRsync工具迁移

借助cwRsync工具迁移

服务端安装服务端软件如下,会自动在系统内创建一个系统用户,用户名为:xxx  ,密码为:xxx查看系统用户,会发现自动创建了如下用户:修改配置文件:rsyncd.confuse chroot = fa...

大数据高可用系列--kudu高可用应急方案

大数据高可用系列--kudu高可用应急方案

1 设置机架感知1.1 前置说明    1.9版本后的kudu已经支持机架感知(cdh6之后的版本中的kudu已支持),由于kudu的每个Tablet一般是三副...

Ldap高可用部署

Ldap配置高可用两个节点上均执行mkdir /data/ldapcd /data/ldap1.1. 添加mod_syncprov.ldif文件vi mod_syncprov.ldif 内容如下:ob...

企业级大数据安全架构(六)

企业级大数据安全架构(六)

本节详细介绍企业级大数据架构中的第六部分,数据授权和审计管理1.Ranger简介Apache Ranger是一款被设计成全面掌管Hadoop生态系统的数据安全管理框架,为Hadoop生态系统...

使用CoreDNS搭建DNS服务器

使用CoreDNS搭建DNS服务器

简介CoreDNS是一个DNS服务器/转发器,用Go编写,可以链接插件。每个插件执行一个 (DNS) 功能。CoreDNS是云原生计算基金会毕业的项目。CoreDNS是一个快速灵活的DNS服务器。这里...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。