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

Flink中的窗口

一、窗口的概念

为了对无界数据流进行处理,Flink可以将数据流切分为数据块,每一个数据块就是所谓的窗口。窗口中两个重要的点:窗口的类型和窗口的处理函数

二、窗口的分类

按照驱动类型分类可以分为:时间驱动窗口和数量驱动窗口,简称为时间窗口和计数窗口。

(1)、时间窗口

时间窗口以时间点定义窗口的开始和结束。通俗来说就是“定点发车”。

(2)、计数窗口

计算窗口以窗口中的数据的数量为依据,当数据达到指定数量之后窗口截止。通俗来说就是“人齐发车”。

按照窗口分配数据的规则划分分为:滚动窗口、滑动窗口、会话窗口、全局窗口。

(1)、滚动窗口

滚动窗口中的数据是“首尾相连”的,每个窗口中的数据不会重复,且不会缺失。滚动窗口既可以基于时间来定,也可以基于数量来定。

(2)、滑动窗口

滑动窗口要看窗口的大小,但是更重要的是看窗口的步长。如果窗口的步长刚好等于窗口的大小的话就和滚动窗口一样;如果窗口的步长大于窗口的大小就会导致数据的丢失;如果窗口的步长小于窗口的大小时就会导致数据处理时的重复。

(3)、会话窗口

会话窗口就是会话双方建立起来的通道,这种窗口只能基于时间创立,不能基于数据数量来创立。会话窗口没有固定的结束时间,当相邻两个数据发送时间的间隔大于规定的会话间隔时会认为这不是同一个会话。

(4)、全局窗口

全局的窗口没有窗口的技术时间,需要靠触发器来对窗口中收集到的数据进行处理。

三、窗口操作

在实际的写代码的过程中,需要注意两个内容,一个就是窗口分配器(实际使用时的窗口的类型);一个是窗口函数。窗口分配器用于指定我用的是时间窗口还是计数窗口;是滚动窗口还是滑动窗口亦或是会话窗口。窗口函数就是对应的对窗口进行的处理操作。

(1)、窗口分配器

(2)、窗口函数

窗口函数也是分为两类:增量聚合函数和全窗口函数。增量聚合函数是每次来一条数据就计算一个,到窗口结束时输出执行结果。典型的增量聚合函数是ReduceFunction和AggregateFunction。全窗口函数就是对进入窗口的函数先不进行处理,在窗口结束时才进行处理。

http://www.xdnf.cn/news/1290763.html

相关文章:

  • 解决程序连不上RabbitMQ:Attempting to connect to/access to vhost虚拟主机挂了的排错与恢复
  • Windows也能用!Claude Code硬核指南
  • 【报错解决】Conda - Downloaded bytes did not match Content-Length
  • Java零基础笔记16(Java编程核心:存储读写数据方案—File文件操作、IO流、IO框架)
  • 搜索引擎核心机制解析
  • 5.0.9.1 C# wpf通过WindowsFormsHost嵌入windows media player(AxInterop.WMPLib)
  • C# WPF本地Deepseek部署
  • 集成电路学习:什么是CV计算机视觉
  • IPA1299至为芯替代TI ADS1299的脑机接口芯片
  • 网络安全合规6--服务器安全检测和防御技术
  • 高级IO(五种IO模型介绍)
  • Spring、Spring MVC、Spring Boot与Spring Cloud的扩展点全面梳理
  • Spring Boot 集成 机器人指令中枢ROS2工业机械臂控制网关
  • 从“存得对”到“存得准”:MySQL 数据类型与约束全景指南
  • 算法题打卡力扣第11题:盛最多水的容器(mid)
  • 音视频处理新纪元:12款AI模型的语音转录和视频理解能力横评
  • 洛谷 P2607 [ZJOI2008] 骑士-提高+/省选-
  • 从钢板内部应力视角,重新认识护栏板矫平机
  • 猫头虎AI分享| 智谱开源了为 RL scaling 设计的 LLM post‑training 框架用于GLM-4.5强化学习训练:slime
  • 深入解析C语言嵌套结构体的内存管理与操作实践
  • 基于CNN与Transformer的无人机应急救援网络异常流量检测
  • 在前端js中使用jsPDF或react-to-pdf生成pdf文件时,不使用默认下载,而是存储到服务器
  • SQL详细语法教程(一)--数据定义语言(DDL)
  • Android SurfaceView TextureView
  • 【Qt开发】常用控件(三) -> geometry
  • kernel pwn 入门(四) ret2dir详细
  • 大模型推理框架vLLM 中的Prompt缓存实现原理
  • GitHub分支保护介绍(Branch Protection)(git分支保护)(通过设置规则和权限来限制对特定分支的操作的功能)
  • 嵌入式系统学习Day17(文件编程-库函数调用)
  • AuthController类讲解