Flink学习笔记(五)窗口详解

一、概述:

        Flink中Batch是Streaming的一个特例,因此Flink底层引擎是一个流式引擎,在上面实现了流处理和批处理。而Window就是从Streaming到Batch的桥梁。

二、flink窗口类型:

Flink 提供了丰富的窗口类型,可以根据具体的场景和需求选择不同的窗口类型例如:

1.滚动窗口(Tumbling Windows):将数据流按照固定大小的窗口进行划分,每个窗口内的数据处理完毕后,窗口的计算结果会被输出。

2.滑动窗口(Sliding Windows):将数据流按照固定的大小和固定的滑动步长进行划分,每个窗口内的数据处理完毕后,窗口的计算结果会被输出。

3.会话窗口(Session Windows):将数据流按照时间间隔进行分割,每个分段内的数据处理完毕后,窗口的计算结果会被输出。

4.全局窗口(Global Windows):将整个数据流作为一个窗口进行处理,可以用来进行全局的计算操作。

5.增量窗口(Incremental Windows):在数据流的处理过程中,持续对数据进行计算,而不是等待整个窗口的数据全部到齐后再进行计算。

6.Purging Window:清除窗口,当窗口中的数据达到一定的数量或时间时,将窗口中的数据全部清除。可以使用CountTriggerPurgingTrigger结合Evictor函数来实现。

7.Evicting Window:驱逐窗口,当窗口中的数据达到一定的数量或时间时,将旧数据驱逐出窗口。可以使用CountTriggerEvictor函数来实现。

8.Custom Trigger:自定义触发器,根据业务需求自定义触发器行为,可以使用Trigger接口来实现。

三、Window聚合分类:

Window聚合操作主要分为两种:一种是增量聚合,一种是全量聚合。

1.增量聚合:

增量聚合是指窗口每进入一条数据就计算一次

2. 全量聚合:

全量聚合是指在窗口触发的时候才会对窗口内的所有数据进行一次计算。

3.其他聚合方式:

 flink还有很多其他的聚合方式如:时间窗口聚合按照时间范围对数据进行分组聚合,计数窗口:按照数据条数对数据进行分组聚合等等,通过这些不同的聚合方式最终造就了flink的各式各样的窗口类型,也帮助使用者更加灵活的处理数据需求

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值