Streaming 滑动窗口与翻滚窗口
我正在读一篇关于数据流管理的长篇文章,我对滑动窗口和翻滚窗口之间的区别感到有点困惑。到目前为止,我已经了解到翻转窗口可以是基于时间的,并且有固定的(开始、结束)点,当窗口过期时会“翻转”。例如,基于时间的窗口可以是1分钟长。因此,每分钟窗口都会翻滚,以处理数据集的聚合 让我困惑的是滑动窗。是基于计数的滑动窗口,因此当x个元组进入窗口时,窗口会翻滚。或者,进入该窗口的x最近的元组将是该窗口的一部分,而较旧的元组将从该窗口中逐出。也就是说,当新元组到达时,窗口会不断更新 翻转窗口(TW) 窗口中的所有元组同时过期 滑动窗口(SW) 只有部分元组在给定时间过期 示例 如果您输入了一个包含以下整数的窗口(表示整数(输入后的秒数)),假设TW是在60秒前创建的,两个窗口的时间限制都是60秒Streaming 滑动窗口与翻滚窗口,streaming,Streaming,我正在读一篇关于数据流管理的长篇文章,我对滑动窗口和翻滚窗口之间的区别感到有点困惑。到目前为止,我已经了解到翻转窗口可以是基于时间的,并且有固定的(开始、结束)点,当窗口过期时会“翻转”。例如,基于时间的窗口可以是1分钟长。因此,每分钟窗口都会翻滚,以处理数据集的聚合 让我困惑的是滑动窗。是基于计数的滑动窗口,因此当x个元组进入窗口时,窗口会翻滚。或者,进入该窗口的x最近的元组将是该窗口的一部分,而较旧的元组将从该窗口中逐出。也就是说,当新元组到达时,窗口会不断更新 翻转窗口(TW) 窗口中的所
1 (0s), 2 (10s), 4 (24s), 8 (17s), 16 (40s)
假设20秒过去了,然后下列整数进入窗口
7, 3, 6
现在,前一个TW将已过期,并且只包含上述值。而SW将包含以下值
7, 3, 6, 1, 2, 4, 8
让我们认为窗口功能是一种传统操作,它处理基于时间的输入数据,应用给定的聚合函数并输出结果 翻转窗口(TW)操作和滑动窗口(SW)操作之间的关键区别在于所考虑的数据点的交叉集,前者为空,后者可能为非空 来自Microsoft Azure Stream Analytics的一个非常好的例子,通过插图说明了这一点
- TW,考虑到滴答声为10秒,该窗口操作在该时间范围内从聚合函数中输出每个滴答声的结果李>
- SW,考虑到X的刻度,每当事件发生时,该窗口操作都会在Ys时间范围内从聚合函数输出每个刻度的结果,例如,
和X=1
然后,每隔一秒钟,窗口功能就会回顾十秒钟,系统地丢弃最旧的数据点李>Y=10
t0-> 5 7 4 3 1 1 3 t10-> 4 5 8 1 2 3 3 3 5 7 7 t20-> t30-> 3 3 4 t40->
将SUM
视为聚合函数和SW的平庸策略,SW是希望窗口(HW):
- 在
t0
李>SW=TW=0
- at
t10
李>SW=TW=24
- 在
没有TW,但是t11
并且连续窗口之间的交点是SW=23
李>7 4 3 1 3
- 在
没有TW,但是t11
并且连续窗口之间的交点是SW=21
李>4314
- at
t20
李>TW=SW=48
- 在
没有TW,但是t21
并且连续窗口之间的交叉点是SW=44
5 8 1 2 3 3 3 5 7
- at
t30
李>TW=SW=0
- 在
没有TW,但是t31
并且连续窗口之间的交叉点是空的,因为在SW=3
中没有发生任何事件[t20,t30]
另一个由SoftwareMill首席技术官亚当·沃斯基(Adam Warski)制作,它举例说明了Spark、Flink、Akka和Kafka等现代流媒体技术的使用。感谢您创建视觉演示!我喜欢。