バッチ処理のスケーリング
ストリーミングの基礎概念
Mike Metzger
Data Engineer
スケーリングとは?
性能向上
高速化
同量のデータをより短時間で処理
処理量の増加
同じ時間でより多くのデータを処理
垂直スケーリング
より高性能な計算資源
高速な CPU
高速な IO
大容量メモリ
一般に最も
容易
なスケーリング
複雑さが最小
既存プログラム/アルゴリズムの変更はほぼ不要
1
Images courtesy https://unsplash.com/@jeremy0
垂直スケーリングのデメリット
本質的に
上限あり
高コスト
/ROI 低
業界の性能向上は
保証されない
水平スケーリング
タスクを複数部分に
分割
台数を増やす
または CPU を増やす
「極めて並列化しやすい」
タスクに最適
ワーカー間で容易に分割できる処理
高い費用対効果
特定の処理で
ほぼ線形に性能向上
水平スケーリングのデメリット
複雑さ
処理フレームワークが必要(Apache Spark や Dask など)
さらに広範なネットワーク構成が必要
継続的な運用管理
要件次第で
高コスト
「非並列」
タスク
Passons à la pratique !
ストリーミングの基礎概念
Preparing Video For Download...