流计算中的Window机制|青训营笔记

71 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第4天,在第四节课中主要了解到了流计算中的Window机制。

概述

  • 流式计算VS批式计算

image.png

  • 批式计算一般是T+1的数仓架构
  • 数据实时性越高,数据的价值越高
  • 实时计算分为处理时间和事件时间
  • 事件时间需要Watermark配合来处理乱序

Watermark

  • 含义:表示系统认为的当前真实时间
  • 生成:可以通过Watermark Generator来生成
  • 传递:取上游所有subtask的最小值
  • 部分数据断流:Idle Source
  • 迟到数据处理:Window算子是丢弃;Join算子认为跟之前的数据无法Join到

Window

基本功能

  • Window分类:滚动窗口,滑动窗口,会话窗口
  • 迟到数据处理:AllowLateness、SideOutput
  • 增量计算和全量计算模型
  • EMIT触发提前输出窗口的结果

高级优化

  • Mini-batch优化解决频繁访问状态的问题
  • local-global优化解决倾斜问题
  • Distinct状态复用降低状态量
  • Pane优化降低滑动窗口的状态存储量

案例分析