题记部分

一、Flink中的窗口是什么

(1)一般真实的流都是无界的,怎样处理无界的数据?

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

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

二、窗口类型

(1)时间窗口(Time Window)

  ① 滚动时间窗口(tumbling time window):.timeWindow(Time.seconds(15))

  ② 滑动时间窗口(sliding time window):.timeWindow(Time.seconds(15),Time.seconds(5))

  ③ 会话窗口(session window):.window(EventTimeSessionWindows.withGop(Time.minutes(10)))

(2)计数窗口(Count Window)

  ① 滚动计数窗口(tumbling count window):.countWindow(5)

  ② 滑动计数窗口(sliding count window):.countWindow(10,2)

2.1、滚动窗口(Tumbling Windows)

2.2、滑动窗口(Sliding Windows)

2.3、会话窗口(Session Windows)

三、Window API

(1)窗口分配器 —— window()方法

(2)我们可以用.window()来定义一个窗口,然后基于这个window去做一些聚合或者其它处理操作。

(3)window()方法必须在keyBy之后才能使用。

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

val minTempPerWindow = dataStream
.map(r => (r.id,r.temperature))
.keyBy(_._1)
.timeWindow(Time.seconds(15))
.reduce((r1,r2) => (r1._1,r2.min(r2._2)))

四、窗口分配器

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

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

(3)Flink提供了通用的WindowAssigner

  ① 滚动窗口(tumbling window)

  ② 滑动窗口(sliding window)

  ③ 会话窗口(session window)

  ④ 全局窗口(global window)

五、窗口函数

window function定义了要对窗口中收集的数据做的计算操作,可以分为两类

(1)增量聚合函数(incremental aggregation functions)

  • 每条数据到来就进行计算,保持一个简单的状态
  • ReduceFunction、AggregateFunction

(2)全窗口函数(full window functions)

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

六、其他API

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

(2).evitor():移除器,定义移除某些数据的逻辑;

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

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

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

— 业精于勤荒于嬉,行成于思毁于随 —

Flink - [04] 窗口(Windows)的更多相关文章

  1. DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示

    DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...

  2. Ubunut18.04与Windows传输文件的方式

    ubunut18.04与Windows传输文件的方式 开发环境:ubuntu18.04; 虚拟机:virtual box; 操作系统:Win10_64bits/专业版 在以前使用的ubuntu12.0 ...

  3. 【源码解析】Flink 滑动窗口数据分配到多个窗口

    之前一直用翻滚窗口,每条数据都只属于一个窗口,所有不需要考虑数据需要在多个窗口存的事情. 刚好有个需求,要用到滑动窗口,来翻翻 flink 在滑动窗口中,数据是怎么分配到多个窗口的 一段简单的测试代码 ...

  4. Flink(八)【Flink的窗口机制】

    目录 Flink的窗口机制 1.窗口概述 2.窗口分类 基于时间的窗口 滚动窗口(Tumbling Windows) 滑动窗口(Sliding Windows) 会话窗口(Session Window ...

  5. 关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思

    关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思 一.遇到的问题      如题目所说,在windows的虚拟机中和windo ...

  6. Flink会话窗口测试

    Flink会话窗口测试 一.测试结论: 1.会话窗口的间隔时间和水位线作用一样,表示输出现在时间 - 间隔时间之前所有未结算时间的数据,作用类似于水位线,但是和水位线开闭不一样. 2.会话窗口显示的数 ...

  7. ubuntu 16.04 和 windows 10系统安装mysql 允许远程访问 | mysql user guide on ubuntu 16.04 and windows 10

    本文首发于个人博客https://kezunlin.me/post/36e618e7/,欢迎阅读! mysql user guide on ubuntu 16.04 and windows 10 Pa ...

  8. Flink的窗口处理机制(一)

    一.为什么需要 window ? 在流处理应用中,数据是连续不断的,即数据是没有边界的,因此我们不可能等到所有数据都到了才开始处理.当然我们可以每来一个消息就处理一次,但是有时我们需要做一些聚合类的处 ...

  9. Flink Window窗口机制

    总览 Window 是flink处理无限流的核心,Windows将流拆分为有限大小的"桶",我们可以在其上应用计算. Flink 认为 Batch 是 Streaming 的一个特 ...

  10. flink入门实例-Windows下本地模式跑SocketWordCount

    一般情况下,开发大数据处理程序,我们希望能够在本地编写代码并调试通过,能够在本地进行数据测试,然后在生产环境去跑“大”数据. 一.nc工具 配置windows的nc端口,在网上下载nc.exe(htt ...

随机推荐

  1. 零基础学习人工智能—Python—Pytorch学习(十三)

    前言 最近学习了一新概念,叫科学发现和科技发明,科学发现是高于科技发明的,而这个说法我觉得还是挺有道理的,我们总说中国的科技不如欧美,但我们实际感觉上,不论建筑,硬件还是软件,理论,我们都已经高于欧美 ...

  2. [AGC029D] Grid game题解

    这题很显然可以用贪心来解. 由于先手不动一定会让局数更少,所以先手要能动就动. 而后手一定是希望他的石子可以撞到一个障碍物上,这样先手就无法移动了,后手就可以让局数更少. 因为先手一定会能动就动,所以 ...

  3. 升级到 .NET Core 3.1

    微软升级的频率有点快,转眼 .NET Core 升级到 3.1 版了,这是一个长期支持版本,意味着 .NET Core 正式进入成熟期. 不过,对于开发人员来说,你的项目又需要迁移了. 升级项目文件 ...

  4. CompilerGenerated与GeneratedCode区别

    前言 最近在捣鼓代码生成器,基于 Roslyn,我们可以让生成器项目生成我们的目标 C# 代码,这个也是MVVM Toolkit的实现方式,在查看生成代码的过程中,我们经常会遇到一些特殊的特性,如 G ...

  5. Python 在Excel单元格中应用数据条

    在Excel中添加数据条是一种数据可视化技巧,它通过条形图的形式在单元格内直观展示数值的大小,尤其适合比较同一列或行中各个单元格的数值.这种表示方式可以让大量的数字信息一目了然.本文将介绍如何使用Py ...

  6. Qt开源作品29-NTP服务器时间同步

    一.前言 很多软件都有时间同步的功能,尤其是Qt在嵌入式设备上的,有时候还有很多是没有UI界面的程序,而硬件上有个时钟,时间久了难免没有电,需要从服务器来同步时间来保证本地的时间是正确的,不然本地记录 ...

  7. [转]使用navicat将excel文件导入mysql数据库

    excel: 注: 1.mysql里建立一张跟excel一样的表结构的表(包含id) 2.excel最好没有任何格式,只是纯值,不然会出现导入不了的错误 ----------------------- ...

  8. COCI 2024/2025 #3

    T1 P11474 [COCI 2024/2025 #3] 公交车 / Autobus 愤怒,从红升橙足以说明其恶心,考场上调了半小时才过. 这道题的车能够开 \(24\) 小时,并且他能从前一天开到 ...

  9. [炼丹术]YOLOR目标检测训练模型学习总结

    YOLOR目标检测训练模型学习总结 性能测试 python test.py --data data/cocoaml --img 320 --batch 8 --conf 0.001 --iou 0.6 ...

  10. 【狂神说Java】Java零基础学习笔记-预科

    [狂神说Java]Java零基础学习笔记-预科 预科01:学习准备:博客 博客,英文名为Blog,它的正式名称为网络日记 为什么要写博客? 需要总结和思考.有时候我们一直在赶路,却忘了放慢脚步 提升文 ...