[flink]#25_Window

Window 就是用来对一个无限的流设置一个有限的集合,在有界的数据集上进行操作的一种 机制。
Window可以分为**基于时间(Time-based)的 Window 以及基于数量(Count-based)**的 window。

Flink中一共可以使用以下Window:

  • 以时间驱动的 Time Window
  • 以事件数量驱动的 Count Window
  • 以会话间隔驱动的 Session Window
  • 自定义的Window

Time Window

:一分钟的时间窗口就只会收集一分钟的 元素,并在一分钟过后对窗口中的所有元素应用于下一个算子。

dataStream.keyBy(1)
.timeWindow(Time.minutes(1)) //time Window 每分钟统计一次数量和 
.sum(1)
dataStream.keyBy(1) 
.timeWindow(Time.minutes(1), Time.seconds(30)) //sliding time Window 每隔 30s 统计过去一分钟的数量和
.sum(1);

Count Window

:如果计数窗口的值设置的为 3 ,那么将会在窗口中收集 3 个事 件,并在添加第 3 个元素时才会计算窗口中所有事件的值。

dataStream
.keyBy(1)
.countWindow(3) //统计每 3 个元素的数量之和 .sum(1);
dataStream
.keyBy(1)
.countWindow(4, 3) //每隔 3 个元素统计过去 4 个元素的数量之和 .sum(1);

Session Window

:使用该窗口的时候你可以传入一个时间参数(表示某
种数据维持的会话持续时长),如果超过这个时间,就代表着超出会话时长。

dataStream
.keyBy(1) .window(ProcessingTimeSessionWindows.withGap(Time.seconds(5)))//表示如果 5s 内 没出现数据则认为超出会话时长,然后计算这个窗口的和
.sum(1);

自定义Window

。。。待更。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值