扩展批处理

Streaming 概念

Mike Metzger

Data Engineer

什么是扩展?

  • 提升性能
    • 更快处理
      • 相同数据量,用时更少
    • 处理更多数据
      • 相同时间,处理更多数据
Streaming 概念

纵向扩展

  • 更强的硬件
    • 更快的 CPU
    • 更快的 IO
    • 更大的内存
  • 通常是最容易的扩展方式
    • 复杂度最低
    • 很少需要更改底层程序/算法

CPU

内存

1 图片来源 https://unsplash.com/@jeremy0
Streaming 概念

纵向扩展的缺点

  • 天生有上限
  • 可能昂贵/投资回报低
  • 行业进步不保证
Streaming 概念

横向扩展

  • 将任务拆分为多部分
    • 更多计算机
    • 也可以是更多 CPU
  • 最适合"尴尬并行"的任务
    • 可轻松分配给多个工作者的任务
  • 可能非常高性价比
  • 某些流程可实现近线性性能提升

CPU1

CPU2

CPU3

CPU4

Streaming 概念

横向扩展的缺点

  • 复杂性
    • 需要处理框架(如 Apache Spark 或 Dask)
    • 需要更复杂的网络
  • 持续运维
  • 可能因需求而成本高
  • 存在"不可并行"的任务
Streaming 概念

Passons à la pratique !

Streaming 概念

Preparing Video For Download...