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

Flink中的窗口

一、窗口的概念

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

二、窗口的分类

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

(1)、时间窗口

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

(2)、计数窗口

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

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

(1)、滚动窗口

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

(2)、滑动窗口

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

(3)、会话窗口

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

(4)、全局窗口

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

三、窗口操作

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

(1)、窗口分配器

(2)、窗口函数

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

http://www.dtcms.com/a/329178.html

相关文章:

  • HTML5 Canvas实现数组时钟代码,适用于wordpress侧边栏显示
  • 用 mock 把 ES 单元测试@elastic/elasticsearch-mock 上手
  • PyTorch基础(使用TensorFlow架构)
  • Nginx的SSL通配符证书自动续期
  • Python(二):MacBook安装 Python并运行第一个 Python 程序
  • docker搭建java运行环境(java或者springboot)
  • 项目五算:估算、概算、预算、结算、决算
  • 解决:nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module
  • 《张朝阳的物理课》,呼应当下物理学习的“思维转向”
  • react与vue的对比,来实现标签内部类似v-for循环,v-if等功能
  • Avalon-MM协议
  • python之---递归选择文件并生成新文件保持目录结构
  • 《工程封装》(Python)
  • 一键式商品信息获取:京东API返回值深度挖掘
  • Dynamsoft Capture Vision Crack
  • AWS Bedrock Claude模型费用深度分析:企业AI成本优化指南
  • 卫星轨道基础知识
  • ICCV 2025 | 4相机干掉480机位?CMU MonoFusion高斯泼溅重构4D人体!
  • LaTeX(排版系统)Texlive(环境)Vscode(编辑器)环境配置与安装
  • Pytest项目_day14(参数化、数据驱动)
  • duiLib 利用布局文件显示一个窗口并响应事件
  • C语言零基础第15讲:字符函数和字符串函数
  • ThinkPHP+Mysql 灵活用工小程序-技术深度解析与实践指南
  • 对线面试官之幂等和去重
  • 数据结构:用数组实现队列(Implementing Queue Using Array)
  • vue修改element的css属性
  • Docker端口映射完全指南:打通容器内外通信的关键技术
  • 如何把ubuntu 22.04下安装的mysql 8 的 数据目录迁移到另一个磁盘目录
  • 从“存得对”到“存得准”:MySQL 数据类型与约束全景指南
  • MySQL中的缓存机制