Flink的窗口计算案例

窗口的分类

按照时间生成Window,为TimeWindow,根据窗口实现原理可分为三类:

  1. 滚动窗口(Tumbling Window):将数据依据固定的窗口长度对数据进行分片。滚动窗口分配器将每个元素分配到一个指定窗口大小的窗口中,滚动窗口有一个固定的大小,并且不会重叠。适用于做每个时间段的聚合计算
  2. 滑动窗口(Sliding Window):由固定的窗口长度和滑动间隔组成,适用于最近一个时间段内统计,窗口长度固定,可有重叠
  3. 会话窗口(Session Window):由一系列事件组合一个指定时间长度的timeout间隙组成,也就是一段时间没有接收到新的数据就会生成新的窗口。会话窗口是指一段用户持续活跃周期,由非活跃的间隙分隔开,时间不对齐

按照指定的数据条数生成一个Window,与时间无关,为CountWindow:

  1. 滚动窗口(Tumbling Window):默认的CountWindow是一个滚动窗口,只需要指定窗口大小即可,当元素数量达到窗口大小时,就会触发窗口的执行
  2. 滑动窗口(Sliding Window):和滚动窗口的函数名完全一致,只是传入的参数不同,滑动窗口需要传入两个参数,一个是window_size,一个是sliding_size

注意事项:所有窗口是左闭右开

代码实际案例

关于TimeWindow的算子的应用

def time_window_func(sEnv: StreamExecutionEnvironment) = {
    sEnv.setP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值