前言
最近在学习流式计算相关的知识,在阅读了MillWheel论文,在这里对low watermark机制做一个总结与介绍。
Window
实时数据流是永不停歇的,我们无法获取所有的数据并产出一个最终的结果。很多情况下我们更关心的是最近的状态,而不是从实时数据流启动至今的统计数据。因此需要将数据流切分为一个个片段,这些片段形象的称为Window。总而言之,Window是将无边界的实时数据流进行划分的一种机制。
Window大体分为三种:
- Time Window:依靠时间作为划分Window的依据,意思就是设立一个时间间隔来结束window,进行计算
- Fixed Window:固定窗口,数据彼此不重叠
- Sliding Window:滑动窗口,数据会重叠
- Session Window:依靠用户的会话作为划分Window的依据
session window主要依靠设立的时间间隔来划分一个window,即session gap。session window没有具体的结束和开始时间,当一个window中超过session gap时间还没有元素到来,该window就会结束并进行计算,此时就称为一个会话。