本文重点
无界流会源源不断的产生数据,有的时候我们需要把无界流进行切分成一段一段的有界数据,把一段内的所有数据看成一个整体进行聚合计算,这是实现无界流转成有界流的方式之一。
为什么需要窗口
数据是源源不断产生的,我们可能只关心某个周期内的统计结果。比如电费是不断产生的,我们可能会关注每个月用了多少,此时我们就定义定义一个窗口,大小为1个月,从而得到一个月内的电量使用结果。
总之一句话,窗口可以帮助我们获取无界数据流中的某段窗口有界数据的统计结果。
窗口的介绍
现在有一个温度传感器,它不定时上报当前环境的温度。我们现在有一个任务就是每10分钟统计一次当前环境的温度(平均值)
现在我们定义一个窗口,这个窗口的大小为10分钟,数学表达就是[0,10),假设现在温度传感器温度产生的时间(事件时间)和数据如下:
1分钟 46
2分钟 48
3分钟 45
7分钟 45
9分钟 46
10分钟 43
11分钟 42
12分钟 49
17分钟 49
21分钟 49
25分钟 43
29分钟 45
如果我们将它画出来,我们可以得到下面的图像: