大数据计算窗口
Window 是什么?
把无限流切成有限片段再聚合,按时间或按条数切
类比:把一条长河按每 5 分钟舀一桶来化验
四种常见窗口
按业务语义选,选错了指标就是错的。
- 滚动窗口(Tumbling):固定长度不重叠,如每 5 分钟一次,适合常规指标
- 滑动窗口(Sliding):固定长度可重叠,如每 1 分钟算最近 5 分钟,适合平滑曲线
- 会话窗口(Session):按活动间隙切分,如用户 30 分钟无操作算一次会话
- 计数窗口(Count):按条数切,适合流量均匀的场景
事件时间 vs 处理时间
事件时间(Event Time)用数据自带的时间戳,能正确处理乱序和延迟,是实时指标的正确选择;处理时间(Processing Time)用机器时钟,简单但结果不可重现。做业务指标一律用事件时间。
增量聚合 vs 全量缓存
用 reduce / aggregate 做增量聚合,每来一条更新一次累加值,内存只存一个结果;用 process 把窗口内所有数据缓存下来再算,内存随数据量线性增长。能用增量就别缓存全量。