美文网首页
Flink-时间窗口-Windows

Flink-时间窗口-Windows

作者: 卡门001 | 来源:发表于2021-11-23 15:27 被阅读0次

Windows定义

无界流 - 进行拆分成buckets ,得到有限的数据集 =>有界流
Windows 计算是流式计算中非常常用的数据计算方式之一,通过按照固定时间或长度将数据流切分成不同窗口,然后对数据进行相应的聚合运算,从而得到一定时间范围内的统计结果。
eg:
例如统计最近5min 内某基站的呼叫数,此时基站的数据在不断地产生,但是通过5min中的窗口将数据限定在固定。
时间范围内,就可以对该范围内的有界数据执行聚合处理,得出最近5min的基站的呼叫数量。

Windows分类

keyed Window

keyed Window's API
.keyBy:带key的窗口必须执行的步骤
.windows: 分配器,决定分配到哪一个窗口
[trigger]:触发器,
[evictor]:
[allowedLateness]:允许延迟的时间
[sideOutputLateData]
[reduce/aggregate/fold/apply()
[getSideOutput()]

Non-Keyed Window

Non-Keyed Window-API

总结

- 是否keyBy
  steam.keyBy().window(...).
  steam.windowALL(...).
- 时间 Time-based Windows(与数量无关)
- 数量:  Count-based Windows (按元素的个数划分窗口数)
基于时间与基于数量的关系图表

Windwo Assigner(窗口分配器)

负责将每一进来的元素分配到一个或多个窗口中。
一般是在window或windowALL里设置Assigner。
基于时间与基于数量的窗口:

  • 窗口分配器可分为四大类型:
    滚动窗口
    滑动窗口
    session窗口
    全局窗口
  • 自定义窗口分配器(继承WindwosAssigner)
滚动窗口(Tumbling Window)

滚动窗口是根据固定大小进行切分, 窗口间的元素互不重叠,这类窗口最大特点是比较简单,只需要指定一个窗口长度(window size)
例:每个5s产生新的窗口统计基站的日志数量

滚动窗口
实现:
image.png
滑动窗口(Sliding Window)

滑动窗口也是一种比较常见的窗口类型,设置窗口大小(windows size)+窗口滑动时间(Slide TIme), 且允许窗口数据发生重叠。
当Windows size固定之后,窗口并不像滚动窗口按照windows Size向前移动,而是根据设定的Slide Time 向前滑动。

  • 重叠发生
    窗口之间的数据重叠大小根据Windows Size和Slide Time决定,当SlideTime<Windows size便会发生窗口重叠
    例:


    滑动窗口:窗口大小10一个窗口,分1秒滑动一次生成新窗口

代码:


image.png
image.png
会话窗口(Session Window)

会话窗口主要是将某段时间内活跃度较高的数据聚合成一个窗口进行计算, 窗口的触发的条件是Session Gap(规定时间),即在规定的时间内如果没有数据活跃接入,则认为窗口结束,然后触发窗口计算结果。

  • 如果数据一直不间断地进入窗口,也会导致窗口始终不触发
  • 与滑动窗口不同的是,Session Windows不需要有固定Window size和slide tinme,需要定义SEssion gap,来规定不活跃数据的时间上限
session窗口 代码图
全局窗口(用途较少,待补充)

windows生命周期

基于时间的窗口

  • 根据设置的结束时间来管理windows的生命周期
  • 如果设置的延迟时间,则可在延迟时间后再结束窗口

global类窗口(待续)

...

相关文章

  • Flink-时间窗口-Windows

    Windows定义 无界流 - 进行拆分成buckets ,得到有限的数据集 =>有界流Windows 计算是流式...

  • Flink-时间窗口-算子函数-Windows Function

    分类 增量:ReduceFunction(数据归并):两两元素相互计算,并产生输出元素 增量:AggregateF...

  • window

    Tumbling Windows 翻滚窗口 Sliding Windows 滑动窗口

  • console 窗体隐藏

    console 窗口隐藏,不用编译为 windows 窗口程序。

  • Python学习一

    1.****windows****系统中的命令行窗口 (1) 打开命令行窗口 开始菜单-> windows系统->...

  • Win32 SDK基础

    一、windows程序分类 1、控制台程序 windows的Dos程序,没有自己的窗口,需要借助Dos窗口进行用户...

  • 创建D3D窗口

    D3D创建(一) 从Windows普通窗口到D3D窗口在windows中,几乎所有程序都要依赖于窗口。今天就分析如...

  • 1-1 开始第一个程序

    打开Shell窗口或Windows下的命令行窗口,切换到$GOPATH\src文件夹。 如果在Windows下需要...

  • Windows窗口类

    Windows编程中,对所有的GUI组件和控件进行了分类,每种类型的实例对象都具有不同的特性,这些特性包括UI外观...

  • WNDCLASS 结构

    WNDCLASS 结构 Windows 的窗口总是基于窗口类来创建的,窗口类同时确定了处理窗口消息的窗口过程(回调...

网友评论

      本文标题:Flink-时间窗口-Windows

      本文链接:https://www.haomeiwen.com/subject/xpuvtrtx.html