Flink的window机制(一)

Flink中的window操作是流处理的核心,将无限流划分为有限桶以便计算。本文介绍了窗口的概念、为何需要窗口以及Flink中的Keyed和Non-Keyed Windows。详细讨论了Tumbling Windows、Sliding Windows、Session Windows和Global Windows的特性和应用场景,并给出了基于时间和计数的窗口操作示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flink中的window操作是非常丰富的,不得不承认这一点要比spark做的好很多,由于Flink的window机制是比较复杂的,也比较的难理解,所以我会分几篇去介绍他,下面我们一起揭开它神秘的面纱,听我细细道来.

什么是Windows?

窗口是无限流处理的核心部分,窗口把无限的流分成了有限大小的桶,我们可以在桶上面进行计算,这篇文章会教大家在Flink中如何进行窗口操作,以及开发者如何从Flink提供的窗口函数中获得最大的收益.

为什么需要Window呢?

在一些流的应用中,数据都是连续性的,因此我们不能等待所有数据都流进来才开始处理,当然了,我们可以只要数据一进来就立马开始处理,然后等下一个数据,但是呢,在另外一些需求中,我们可能需要做一些聚合对于到来的数据,比如说,在过去的10分钟内,用户点击了多少次页面的链接,在这种例子中呢,我们就必须定义一个窗口,然后在这个窗口内对数据进行计算.

在Flink的窗口化程序中一般的结构如下,分组的流和非分组的流,他们唯一的区别就是分组流调用了keyBy(…)和window(…),而非分组的流window()换成了windowAll(…).

Keyed Windows

stream
       .keyBy(...)               <-  keyed versus non-keyed windows
       .window(...)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonLee实时计算

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值