您当前的位置: 首页 >  flink

杨林伟

暂无认证

  • 3浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Flink教程(11)- Flink高级API(Window)

杨林伟 发布时间:2022-03-07 18:43:47 ,浏览量:3

文章目录
  • 01 引言
  • 02 Window
    • 2.1 为什么需要Window?
    • 2.2 Window分类
      • 2.2.1 按照time和count分类
      • 2.2.2 按照slide和size分类
      • 2.2.3 总结
    • 2.3 Window API
      • 2.3.1 window和windowAll
      • 2.3.2 WindowAssigner
      • 2.3.3 evictor
      • 2.3.4 trigger
      • 2.3.5 API调用示例
  • 03 Window案例演示
    • 3.1 基于时间的滚动和滑动窗口
    • 3.2 基于数量的滚动和滑动窗口
    • 3.3 会话窗口
  • 04 文末

01 引言

在前面的博客,我们已经对Flink批流一体API的使用有了一定的了解了,有兴趣的同学可以参阅下:

  • 《Flink教程(01)- Flink知识图谱》
  • 《Flink教程(02)- Flink入门》
  • 《Flink教程(03)- Flink环境搭建》
  • 《Flink教程(04)- Flink入门案例》
  • 《Flink教程(05)- Flink原理简单分析》
  • 《Flink教程(06)- Flink批流一体API(Source示例)》
  • 《Flink教程(07)- Flink批流一体API(Transformation示例)》
  • 《Flink教程(08)- Flink批流一体API(Sink示例)》
  • 《Flink教程(09)- Flink批流一体API(Connectors示例)》
  • 《Flink教程(10)- Flink批流一体API(其它)》

在前面的教程,我们知道Flink的四大基石十分重要,如下图,本文先讲解下Window在这里插入图片描述

02 Window

流计算中一般在对流数据进行操作之前都会先进行开窗,即基于一个什么样的窗口上做这个计算,Flink提供了开箱即用的各种窗口,比如滑动窗口、滚动窗口、会话窗口以及非常灵活的自定义的窗口。

2.1 为什么需要Window?

在流处理应用中,数据是连续不断的,有时我们需要做一些聚合类的处理,例如:在过去的1分钟内有多少用户点击了我们的网页。

在这种情况下,我们必须定义一个窗口(window),用来收集最近1分钟内的数据,并对这个窗口内的数据进行计算。

2.2 Window分类 2.2.1 按照time和count分类
  • 时间窗口(time-window) :根据时间划分窗口,如:每xx分钟统计最近xx分钟的数据
  • 数量窗口(count-window):根据数量划分窗口,如:每xx个数据统计最近xx个数据 在这里插入图片描述
2.2.2 按照slide和size分类

窗口有两个重要的属性,窗口大小size和滑动间隔slide,根据它们的大小关系可分为:

  • 滚动窗口(tumbling-window): size=slide,比如: 每隔10s统计最近10s的数据在这里插入图片描述
  • 滑动窗口(sliding-window):size>slide,比如:每隔5s统计最近10s的数据在这里插入图片描述

注意:当size

关注
打赏
1662376985
查看更多评论
0.3976s