ISBN 9784295600213
【POD】Apache Spark ビッグデータクエリチューニング
概要
Apache Spark クエリの遅延とデータ偏りを体系的にチューニングする
想定読者
Apache Spark を業務で運用しており、クエリの遅延やデータ偏りに起因するパフォーマンス問題を自力で診断・解決したいデータエンジニア・バックエンドエンジニア。PySpark または Scala Spark の DataFrame API を一通り書いた経験がある実務者を想定しています。
こんな人には向いていない
- Apache Spark の基本操作をこれから学び始める入門者。DataFrame API やシャッフルの概念が前提知識として要求されるため、先に入門書で足場を固めることをおすすめします。
- Spark を導入検討している段階の読者。本書は実装後のチューニング手法に的を絞っているため、アーキテクチャ選定の判断材料には向きません。
- Spark 3.x の Adaptive Query Execution (AQE) など最新の自動最適化機構を主題に学びたい読者。本書は 2021 年時点の内容で、手動チューニングの考え方が中心です。
読了後にできるようになること
- Spark クエリの実行計画とシャッフルステージを読み解き、ボトルネックの位置を特定できるようになります。
- Spark の Web UI とログからジョブの遅延原因を診断する手順を身につけられます。
- データスキューが発生する仕組みと、Salted Join によるパーティション分散の実装手法を理解できます。
- Skew Join の検知と対処の判断フローを、自分のチューニング方針に組み込めるようになります。
- 述語プッシュダウンやブロードキャスト結合といったクエリ最適化の基本アルゴリズムについて、その適用条件を説明できるようになります。
ハイライト
- 基本的なアルゴリズム、ログの見方、チューニングの考え方、Salted Join, Skew Join などのチューニングの手法を説明します。(本書がカバーするチューニング技法の範囲を最も端的に示している箇所)
編集メモ
Qiita 言及 0 件 / 楽天ランキング情報なし。入力シグナルが書誌情報のみで、POD 形式かつ約 35 ページの小冊子のため、定番書ではなく特定論点を速習する補完的な選択肢として位置づけます。
読む前に押さえておきたいこと
- PySpark または Scala Spark で DataFrame API を使ったことがある程度の実務経験
- 分散処理の基本概念(パーティション、シャッフル、ステージ)の理解
- Spark クラスタ(ローカルモードでも可)を自分で動かせる環境
学習のコツ
- 前半でチューニングの前提となる基本アルゴリズムとログの読み方(Spark Web UI の Stage / Task ビュー)を押さえてから、中盤以降の各チューニング手法に進むと理解が速くなります。先に「どこを見るか」を把握しておくのがコツです。
- 中盤から終盤にかけて登場する Salted Join と Skew Join は、いずれもデータの偏り問題への対処という同じ文脈で語られます。手元の Spark 環境で実際にデータスキューを再現しながら読むと、両者の使い分けが定着しやすくなります。
- 本書は約 35 ページの POD(プリントオンデマンド)版で、特定のチューニング論点に絞り込まれた小冊子です。網羅性よりも要点の速習を狙ったボリュームなので、いま直面しているパフォーマンス課題に近い箇所から拾い読みする使い方もできます。
- POD 版のため電子書籍と紙書籍で内容は同一です。手を動かす学習であれば、コードを写経しやすい電子版を手元に置く読み方が向いています。
出版社による内容紹介
本書は、ビッグデータを分散処理するためのフレームワーク「Apache Spark」のクエリのパフォーマンスチューニングのノウハウを紹介した解説書です。Apache Sparkでのクエリのチューニングのための知識として、基本的なアルゴリズム、ログの見方、チューニングの考え方、Salted Join, Skew Joinなどのチューニングの手法を説明します。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。