Flink中的时间和窗口

server/2025/1/24 14:35:45/

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

所谓的“窗口”,一般就是划定的一段时间范围,也就是“时间窗”;对在这范围内的数据进行处理,就是所谓的窗口计算。所以窗口和时间往往是分不开的。接下来我们就深入了解一下Flink中的时间语义和窗口的应用。

一、窗口(Window)

1.1 窗口的概念

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

注意:Flink中窗口并不是静态准备好的,而是动态创建——当有落在这个窗口区间范围的数据达到时,才创建对应的窗口。另外,这里我们认为到达窗口结束时间时,窗口就触发计算并关闭,事实上“触发计算”和“窗口关闭”两个行为也可以分开,这部分内容我们会在后面详述。 

1.2 窗口的分类

我们在上一节举的例子,其实是最为简单的一种时间窗口。在Flink中,窗口的应用非常灵活,我们可以使用各种不同类型的窗口来实现需求。接下来我们就从不同的角度,对Flink中内置的窗口做一个分类说明。

1)按照驱动类型分

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

根据分配数据的规则,窗口的具体实现可以分为4类:滚动窗口(Tumbling Window)、滑动窗口(Sliding Window)、会话窗口(Session Window),以及全局窗口(Global Window)。

 

 

 

1.3 窗口API概览

1.4 窗口分配器

1.4.1 时间窗口

1.4.2 计数窗口

1.5 窗口函数

1.5.1 增量聚合函数(ReduceFunction / AggregateFunction

1.5.2 全窗口函数(full window functions)

1.5.3 增量聚合和全窗口函数的结合使用

1.6 其他API

1.6.1 触发器(Trigger)

1.6.2 移除器(Evictor)

二、时间语义

2.1 Flink中的时间语义

2.2 哪种时间语义更重要

三、水位线(Watermark)

3.1 事件时间和窗口

3.2 什么是水位线

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

4.1  窗口联结(Window Join)

4.2 间隔联结(Interval Join)


http://www.ppmy.cn/server/161041.html

相关文章

jenkins平台使用Login Theme、Customizable Header插件定制修改登陆页图片文字及首页标题

文章目录 前言一、需求二、Login Theme插件1.插件信息2.登陆框上增加文字3.登录页图片的修改 二、Customizable Header插件1.插件信息2.首页标题 总结 前言 使用Login Theme、Customizable Header插件定制修改登陆页logo及首页标题 一、需求 我的使用需求比较简单&#xff0c…

JDK长期支持版本(LTS)

https://blogs.oracle.com/java/post/the-arrival-of-java-23 jdk长期支持版本(LTS):JDK 8、11、17、21:

浅谈机器学习之基于RNN进行充值的油费预测

浅谈机器学习之基于RNN进行充值的油费预测 引言 随着智能交通和物联网技术的发展,油费预测已成为研究的热点之一。准确的油费预测不仅能帮助车主合理规划出行成本,还可以为油价波动提供参考依据。近年来,递归神经网络(RNN&#…

MyBatis和JPA区别详解

文章目录 MyBatis和JPA区别详解一、引言二、设计理念与使用方式1、MyBatis:半自动化的ORM框架1.1、代码示例 2、JPA:全自动的ORM框架2.1、代码示例 三、性能优化与适用场景1、MyBatis:灵活的SQL控制1.1、适用场景 2、JPA:开发效率…

qml Dialog详解

1、概述 Dialog是QML(Qt Modeling Language)中用于显示对话框的组件,它提供了一个模态窗口,通常用于与用户进行重要交互,如确认操作、输入信息或显示警告等。Dialog组件具有灵活的布局和样式选项,可以轻松…

STM32项目分享:智能厨房安全检测系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 PCB图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: STM32智能厨房安全检测系统 (资料分…

Qt 5.14.2 学习记录 —— 십사 多元素控件

文章目录 1、QListWidget2、QTableWidget3、QTreeWidget 多元素控件主要分为3个部分,QList,QTable,QTree。 每个部分都有View和Widget,W基于V封装而来。软件开发中MVC架构三个字母分别代表model数据,view视图&#xf…

CentOS 7.9(linux) 设置 MySQL 8.0.30 开机启动详解

文章目录 一、运行级别简介二、MySQL 服务安装与运行验证三、通过 chkconfig 配置开机启动四、验证开机启动配置五、总结 一、运行级别简介 运行级别(Runlevel)定义了系统的运行模式,常见的运行级别如下: 运行级别描述0关机模式…