Kafka-Streams-Wiondowing

本文详细介绍了Kafka Streams中四种类型的窗口:翻滚时间窗口、跳跃时间窗口、滑动时间窗口和会话窗口。每个窗口类型都有其特定的用例,例如翻滚窗口适用于不重叠的固定时间段,跳跃窗口则允许重叠,而会话窗口根据业务需求定义起始和结束点。此外,文章还讨论了窗口操作的最终结果和如何抑制中间结果,以及提供了相关的代码示例。
摘要由CSDN通过智能技术生成

Wiondowing 使您可以控制如何对具有相同键的记录进行分组以进行有状态操作。

Note

相关操作是分组,它将具有相同密钥的所有记录分组,以确保数据被正确分区(“键入”)以用于后续操作。分组后,窗口允许您进一步对键的记录进行子分组。

例如,在连接操作中,窗口状态存储用于存储到目前为止在定义的窗口边界内接收的所有记录。在聚合操作中,窗口状态存储用于存储每个窗口的最新聚合结果。在指定的窗口保留期后,状态存储中的旧记录将被清除。 Kafka Streams 保证至少在指定的时间内保持一个窗口;默认值为一天,可以通过 Materialized#withRetention() 进行更改。

DSL支持以下类型的窗口:

Window name Behavior Short description
Tumbling time windows 基于时间的 固定尺寸,不重叠,无间隙的窗户
Hopping time window 基于时间的 固定大小的重叠窗口
Sliding time window 基于时间的 固定大小的重叠窗口,用于处理记录时间戳之间的差异
Session window 基于Session的 动态大小,不重叠,数据驱动的窗口

Tumbling time windows

  • 定义

    翻滚时间窗口(Tumbling time windows)实际是 跳跃时间窗口(Hopping time window) 的一种特例。他们模拟固定尺寸,不重叠,无间隙的窗口。翻滚窗口由单个属性定义:窗口的大小。翻滚窗口是一个跳跃窗口,其窗口大小等于其提前间隔。由于翻滚窗口从不重叠,因此数据记录将属于一个且仅一个窗口。

    此图显示了使用翻滚窗口对数据记录流进行窗口化。 Windows 不重叠,因为根据定义,提前间隔与窗口大小相同。在此图中,时间数字代表分钟:例如 t = 5 表示“在五分钟标记处”。

    翻滚时间窗口与时期对齐,下限间隔包含在内,上限为独占。 “与时期对齐”意味着第一个窗口在时间戳零开始。例如,大小为5000毫秒的翻滚窗口具有可预测的窗口边界 [0;5000),[5000;10000),... - 而不是 [1000;6000],[6000;11000],... 当然也不是某些东西“随机”如 [1452;6452],[6452;11452],...

Hopping time window

  • 定义

    跳跃时间窗口是基于时间间隔的窗口。他们模拟固定大小的(可能)重叠窗口。跳跃窗口由两个属性定义:窗口的大小和其提前间隔(又名“跳”)。提前间隔指定窗口相对于前一个窗口向前移动的程度。例如,您可以配置大小为5分钟且提前间隔为1分钟的跳跃窗口。由于跳跃窗口可以重叠 - 并且通常它们可以 - 数据记录可以属于多于一个这样的窗口。

    此图显示了使用跳跃窗口窗口化数据记录流。在此图中,时间数字代表分钟;例如t = 5表示“在五分钟标记处”。

    跳跃时间窗口与时期对齐,下限间隔包含在内,上限为独占。 “与时期对齐”意味着第一个窗口在时间戳零开始。例如,大小为5000毫秒的翻滚窗口具有可预测的窗口边界 [0;5000),[5000;10000),... - 而不是 [1000;6000],[6000;11000],... 当然也不是某些东西“随机”如 [145

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值