第1章 Databricks Intelligence Platform / 想定学習時間:30〜40分 / 最終確認:2026年8月

1-3. コンピュートの選択(All-purpose/Jobクラスタ・SQLウェアハウス・サーバーレスとコストモデル)

🎯 この節の学習目標

1. コンピュートの全体像

1-1 で見たとおり、実際のデータ処理はコンピュートプレーン上の計算資源で行われます。Databricks には用途別に複数のコンピュートがあり、「どのワークロードに、どのコンピュートを割り当てるか」はコストと使い勝手を左右するデータエンジニアの基本判断です。大きく分けると次の3系統です。

系統種類主な用途
クラスタ
(ノートブック・ジョブ用)
All-purpose クラスタ対話的な開発・探索・共同作業
Job クラスタスケジュール実行される本番ジョブ(ETL)
SQL ウェアハウスクラシック/Pro/サーバーレスSQL 分析・BI ダッシュボード
サーバーレスコンピュートノートブック・ジョブ・パイプライン向けサーバーレスインフラ管理なしで即時に使える汎用計算資源

2. All-purpose クラスタと Job クラスタ

最初に押さえるべき対比が、この2種類のクラスタです。同じ Spark クラスタですが、ライフサイクル(起動と終了のされ方)コストが異なります。

All-purpose クラスタJob クラスタ
用途ノートブックでの対話的な開発・データ探索・複数人での共同作業スケジュール済みの自動ジョブ(本番 ETL など)
ライフサイクル手動(または API)で起動し、明示的に停止するか自動終了するまで動き続けるジョブ開始時に自動作成され、ジョブ完了と同時に自動終了する
共有複数ユーザー・複数ノートブックでアタッチして共有できるそのジョブ実行専用。使い回しはできない
コストDBU 単価が高い。放置するとアイドル時間にも課金され続けるDBU 単価が安いうえ、実行時間分しか課金されない

📝 試験のポイント

「開発が終わったノートブックを毎晩自動実行することになった。コストを抑えるには?」→ 正解は「Job クラスタで実行する」です。All-purpose クラスタのままスケジュール実行するのは、単価が高く、起動しっぱなしのリスクもあるため誤答側になります。逆に「複数のデータエンジニアが日中、対話的に共同開発する」なら All-purpose クラスタ(+自動終了の設定)が正解側です。対話的=All-purpose、自動ジョブ=Job クラスタという軸で判断しましょう。

3. SQL ウェアハウスとサーバーレス

3-1. SQL ウェアハウス:SQL 分析・BI の専用コンピュート

SQL ウェアハウスは、Databricks SQL のクエリ・ダッシュボード・BI ツール接続(JDBC/ODBC)のために最適化されたコンピュートです。ノートブックの Python コードを動かす場所ではなく、SQL ワークロード専用である点がクラスタとの違いです。タイプは3種類あります。

タイプ計算資源の場所特徴
クラシック顧客クラウド基本形。起動に数分かかる
Pro顧客クラウドクラシックより高機能だが、起動時間の課題は残る
サーバーレスDatabricks アカウント数秒で起動し、負荷に応じて即座にスケール。多数の同時ユーザーに強く、BI 用途の第一候補

SQL ウェアハウスは、複数ユーザーからの多数の同時クエリをさばくよう設計されています。これは旧世代の「高同時実行(high-concurrency)クラスタ」が担っていた役割の後継にあたる考え方で、古い教材や過去の出題では high-concurrency クラスタという名称が登場することもあります。「多数のアナリストが同時に SQL を投げる用途向けのコンピュート」という概念として押さえておきましょう。

3-2. サーバーレスコンピュート:起動高速・管理不要

サーバーレスコンピュートは、計算資源を Databricks 側が事前にプールしておき、必要な瞬間に割り当てる方式です。SQL ウェアハウスだけでなく、ノートブック・ジョブ・パイプラインでも利用できます。特徴は次の3点です。

4. コストモデル:DBU・オートスケーリング・自動終了・Photon

Databricks の課金は、クラウドインフラ費用(クラシック構成の場合)に加えて、DBU(Databricks Unit)という処理能力の単位に基づきます。コストを左右する主要な仕組みを整理します。

仕組み内容コストへの効き方
DBU 課金コンピュートの種類・サイズごとに毎時の DBU 消費が決まり、稼働時間に応じて課金される同じ処理でもコンピュートの種類(All-purpose か Job か等)で単価が変わる
オートスケーリング(autoscaling)負荷に応じてワーカーノード数を最小〜最大の範囲で自動増減するピークに合わせた固定サイズ確保をやめ、閑散時のムダを削る
自動終了(auto-termination)指定したアイドル時間(例:30分)が続いたらクラスタを自動停止する「使い終わって放置されたクラスタ」への課金を止める。All-purpose クラスタでは必須級の設定
PhotonC++ で実装された高速な実行エンジン。SQL・DataFrame 処理をベクトル化実行で高速化するDBU 単価は上がるが処理時間が短縮されるため、対象ワークロードでは総コストが下がることが多い

💡 具体例:開発用 All-purpose クラスタのコスト対策

ある開発チームが、日中だけ使う共有の All-purpose クラスタを運用しているとします。コストを抑える定石は次の組み合わせです。

# クラスタ定義(REST API / Terraform 等で指定する項目のイメージ)
{
  "cluster_name": "dev-shared-cluster",
  "autotermination_minutes": 30,      # 30分アイドルで自動終了
  "autoscale": {
    "min_workers": 2,                 # 閑散時は2ノードまで縮小
    "max_workers": 8                  # ピーク時のみ8ノードへ拡大
  },
  "runtime_engine": "PHOTON"          # Photon で処理時間を短縮
}

「夜間や昼休みに誰も使っていないのに動き続ける」が All-purpose クラスタの典型的なコスト漏れであり、自動終了の設定がその特効薬です。さらに本番の定期実行に移す段階では、クラスタごと Job クラスタへ切り替えるのが正しい流れです。

5. ワークロード別の使い分け(判断表)

ここまでの内容を「シナリオ → 最適コンピュート」の判断表にまとめます。試験の選択問題はほぼこの表の形で出題されると考えてよい範囲です。

ワークロード最適なコンピュート理由
多数のアナリストによるアドホック SQL・BI ダッシュボードサーバーレス SQL ウェアハウス起動が速く、多数の同時ユーザーに対して自動スケールで応答性を保てる
夜間バッチの本番 ETL(スケジュール実行)Job クラスタ実行時のみ起動・終了し、DBU 単価も安い。アイドル課金が発生しない
データエンジニアの対話的な開発・探索All-purpose クラスタ(自動終了を設定)複数人・複数ノートブックで共有でき、対話的な試行錯誤に向く。自動終了でアイドル課金を防ぐ
インフラ管理をなくし、すぐ使い始めたいノートブック・ジョブサーバーレスコンピュート起動待ちとクラスタ設定のチューニングが不要で、使った分だけの課金になる

迷ったときの判断の流れをフローチャートにすると次のようになります。

ワークロードは何か?
SQL 分析・BI が中心か?ダッシュボード/JDBC・ODBC 接続/多数の同時ユーザー
はい → SQL ウェアハウス同時ユーザーが多い・応答性重視ならサーバーレス
いいえ → ノートブック/ジョブ系へ
スケジュール済みの自動実行か、対話的な開発か?
自動実行 → Job クラスタ実行時のみ起動・終了で低コスト
対話的な開発 → All-purpose クラスタ自動終了+オートスケーリングを設定

図:ワークロードからコンピュートを選ぶ判断フロー(いずれの分岐でも、管理不要を優先するならサーバーレスが選択肢になる)

✅ この節のまとめ

練習問題

問1. ノートブックでの開発が完了し、その処理を毎晩2時にスケジュール実行することになった。コスト効率が最も高いコンピュートの選択はどれか。

  1. 開発に使っていた All-purpose クラスタをそのまま使い続ける
  2. Job クラスタを使い、ジョブ実行時のみクラスタを起動・終了させる
  3. サーバーレス SQL ウェアハウスでノートブックを実行する
  4. All-purpose クラスタを24時間起動したままにして、起動待ち時間をなくす
解答と解説を見る

正解:B

スケジュール済みの自動ジョブには Job クラスタが定石です。実行時のみ自動作成・自動終了するためアイドル課金がなく、DBU 単価も All-purpose より安く設定されています。AはDBU単価が高く、Dはアイドル時間への課金が膨らむ最悪の構成です。Cは誤りで、SQL ウェアハウスは SQL クエリ・BI 用のコンピュートであり、ノートブックのジョブ実行基盤ではありません。

問2. 50人のビジネスアナリストが日中、BI ツールと SQL エディタから同時多発的にアドホッククエリを実行する。応答性とコスト効率を両立する最適なコンピュートはどれか。

  1. アナリストごとに All-purpose クラスタを1台ずつ用意する
  2. 1つの大きな Job クラスタを24時間動かし、全員で共有する
  3. サーバーレス SQL ウェアハウスを利用する
  4. クエリのたびに新しい Job クラスタを起動する
解答と解説を見る

正解:C

「多数の同時ユーザー × アドホック SQL」はサーバーレス SQL ウェアハウスの典型ユースケースです。数秒で起動し、負荷に応じて自動スケールするため応答性とコストのバランスに優れます。Aは50台分のコストと管理負荷が非現実的、Bは Job クラスタの用途(スケジュール実行)から外れるうえ常時課金になります。Dはクエリごとに数分の起動待ちが発生し、対話的な分析に耐えません。

問3. 開発チームが共有する All-purpose クラスタで、「退勤後も夜通しクラスタが起動したままで、アイドル時間に課金され続けていた」という問題が見つかった。最も直接的な対策はどれか。

  1. Photon を有効化する
  2. 自動終了(auto-termination)のアイドル時間を設定する
  3. ワーカーノードの最大数を増やす
  4. クラスタを Delta Lake 形式に変換する
解答と解説を見る

正解:B

「アイドル状態での課金継続」への直接の対策は自動終了の設定です。指定時間(例:30分)アイドルが続くとクラスタが自動停止し、放置課金が止まります。Aは処理の高速化には効きますが、そもそも何も処理していないアイドル時間には無関係です。Cはむしろコスト増の方向です。Dは意味を成さない選択肢で、Delta Lake はテーブルのストレージフォーマットであり、クラスタに適用する概念ではありません。

問4. Databricks のコストモデルに関する説明として正しいものはどれか。

  1. DBU の消費単価はどのコンピュートの種類でも同一である
  2. オートスケーリングを有効にすると、負荷が下がってもワーカーノード数は減らない
  3. Photon を有効にすると DBU 単価は上がるが、処理時間の短縮により総コストが下がる場合がある
  4. サーバーレスコンピュートは固定の月額料金であり、利用量とは無関係に課金される
解答と解説を見る

正解:C

Photon は高速な実行エンジンで、DBU 単価は上がるものの処理が速く終わるため、対象ワークロードでは総コストの削減が期待できます。Aは誤りで、All-purpose と Job クラスタで単価が異なることこそが使い分けの根拠です。Bも誤りで、オートスケーリングは負荷低下時にノードを「減らす」方向にも働きます。Dも誤りで、サーバーレスは使った分だけの従量課金です。