Flink四大基石——1.window

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Flink四大基石——1.window

1.为什么需要Window

在讲这个问题之前,我们先补充批处理和流处理的知识。

批处理:就是对历史数据/有界数据进行处理,如前一天/前7天/前2周/前1/3/6月,前1年…,批处理的任务特点是:跑完一次,就停止,就结束,等待下一次周期调度!而且批处理对于任务完成时间要求不高!一般几个小时内跑完都能够接受!

流处理:就是实时的源源不断到来的流式数据/无界数据进行处理!如:实时统计最近5s/1min/1h的数据,特点是程序启动之后会一直运行,等待数据到来!除非遇到异常或手动停止!

那么为什么需要Window呢,因为我们需要在实时数据中统计有边界的数据。之前说过Flink是专门做流式数据/无界数据处理的,可以一直处理源源不断到来的实时数据!

如:实时的统计双十一交易额!

但是在实际开发中,对于流式数据处理也有这样的需求,

如:每隔5s中统计一次最近1min的数据!

如:每隔1min统计一次最近1小时的热搜排行榜!

而上面的这种需求其实也是属于实时领域的!

只不过看上去像是在每隔一段时间处理一次之前一段时间的离线数据而已!

但是整个的实时处理程序并没有停止! 所以该需求还是实时的!

那么该如何实现这样的看上去像是离线的实时需求呢?

所以这里要学习新的技术来解决!----window技术,window窗口的特点就是有边界。

2.window如何解决上面的需求

window窗口需要设置窗口大小size和窗口滑动间隔slide,通过window窗口实现上面的需求。

情况1:

窗口的大小= 5s

窗口的滑动间隔 = 5s

那么就实现了每隔5s统计最近5s的实时数据!

情况2:

窗口的大小= 1min

窗口的滑动间隔 = 5s

那么就实现了每隔5s统计最近1min的实时数据!

3.window窗口的五种类型

基于时间的滚动窗口tumbling-time-window:根据时间划分窗口,窗口大小size = 滑动间隔slide,用的较多

基于时间的滑动窗口sliding-time-window:根据时间划分窗口,窗口大小size > 窗口滑动间隔,用的较多

基于数量的滚动窗口tumbling-count-window:根据数量划分窗口,窗口大小size = 窗口滑动间隔slide,用的较少

基于数量的滑动窗口sliding-count-window:根据数量划分窗口,窗口大小size > 窗口滑动间隔slide,用的较少

Flink还支持一个特殊的窗口:Session绘画窗口,需要设置一个会话超时时间,如设置会话超时时间为30s,则表示30s内没有数据到来,则触发上个窗口的计算。

备注:当size < slide时,会发生数据丢失,,如每隔15s统计最近10s的数据,那么中间5s的数据会丢失。,所以开发中不会使用。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
6月前
|
流计算
Flink窗口——window
Flink窗口——window
41 0
|
1月前
|
SQL 消息中间件 分布式计算
大数据-120 - Flink Window 窗口机制-滑动时间窗口、会话窗口-基于时间驱动&基于事件驱动
大数据-120 - Flink Window 窗口机制-滑动时间窗口、会话窗口-基于时间驱动&基于事件驱动
95 0
|
1月前
|
SQL 分布式计算 大数据
大数据-119 - Flink Window总览 窗口机制-滚动时间窗口-基于时间驱动&基于事件驱动
大数据-119 - Flink Window总览 窗口机制-滚动时间窗口-基于时间驱动&基于事件驱动
69 0
|
3月前
|
SQL 存储 Unix
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
Flink SQL 在快手实践问题之设置 Window Offset 以调整窗口划分如何解决
58 2
|
1月前
|
分布式计算 Java 大数据
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
大数据-122 - Flink Time Watermark Java代码测试实现Tumbling Window
34 0
|
1月前
|
SQL 消息中间件 分布式计算
大数据-115 - Flink DataStream Transformation 多个函数方法 FlatMap Window Aggregations Reduce
大数据-115 - Flink DataStream Transformation 多个函数方法 FlatMap Window Aggregations Reduce
36 0
|
3月前
|
存储 分布式计算 算法
Flink四大基石——4.Checkpoint容错机制
Flink四大基石——4.Checkpoint容错机制
82 1
|
3月前
|
消息中间件 应用服务中间件 API
Flink四大基石——3.State
Flink四大基石——3.State
51 1
|
3月前
|
数据安全/隐私保护 流计算
Flink四大基石——2.Time
Flink四大基石——2.Time
42 1
|
3月前
|
SQL 安全 流计算
Flink SQL 在快手实践问题之Group Window Aggregate 中的数据倾斜问题如何解决
Flink SQL 在快手实践问题之Group Window Aggregate 中的数据倾斜问题如何解决
78 1
下一篇
无影云桌面