数据算法结构|青训营笔记

64 阅读1分钟

这是我参与「第四届青训营」笔记创作的第4天
流式计算中的Windows机制

  1. 概述
  • 批处理:批处理模型的典型数仓架构:T+1架构
  • 小时级批计算
  • 处理时间窗口:实时计算:处理时间窗口(数据实时流动,实时计算,窗口结束直接发送结果,不需要周期调度任务)
  • 处理时间VS事件时间(数据产生时间)
  • 事件时间窗口
  1. Watermark
  • 表示系统认为的当前真实的事件时间
  • 数据存在乱序的时候尤其重要!
  • Watermark的传递方法

截屏2022-07-29 16.03.04.png

  • 通过Flink UI观察Watermark

截屏2022-07-29 16.11.53.png

  • 典型问题:per-partition VS per-per-subtask watermark
  • 部分partition/subtask断流:Idle Source
  • 迟到数据处理:Window 算子是丢弃; Join算子认为跟之前的数据无法join到
  1. Window
  • 基本功能:window分类:滚动窗口,滑动窗口,会话窗口……
  • -滚动窗口:每个key单独划分,每条数据只会属于一个窗口;Window结束时间到达的时候一次性触发
  • 滑动窗口:每个key单独划分,每条数据可能属于多个窗口;Window结束时间到达的时候一次性出发
  • 会话窗口:每个key单独划分,每条数据会单独划分为一个窗口,如果window之间有交集,则会对窗口进行merge;Window结束时间到达的时候一次性触发
  • 迟到数据处理:
    • Allow lateness
    • SideOutput
  • 增量计算&全量计算
  • EMIT触发:在datastream钟自定义trigger
  • 高级优化
  • Mini-batch优化截屏2022-07-29 17.38.23.png截屏2022-07-29 17.38.55.png
  • 倾斜优化-local-global截屏2022-07-29 17.39.00.png
  • Distinct计算状态复用
  • Pane优化
  1. 案例分析
  • 计算抖音的日活曲线
  • 计算大数据任务的资源使用