Databricks

DatabricksのJob Cluster / All-Purpose Cluster / SQL Warehouseを用途別に使い分ける

2026-03-26
更新: 2026-03-27
NicheeLab編集部

Databricksには3種類のコンピュートリソースがあり、それぞれ設計思想が異なります。 「とりあえずAll-Purpose Clusterで全部やる」という運用はコスト面で非効率であり、 「SQL WarehouseでPythonを書こうとした」という間違いも初学者がはまりやすい落とし穴です。 この記事では、3つのコンピュートの本質的な違いと、ワークロードに応じた選択基準を整理します。

3コンピュート比較表

観点Job ClusterAll-Purpose ClusterSQL Warehouse
主な用途本番ETL・スケジュールジョブ対話的開発・探索・ML実験SQL分析・BI連携・ダッシュボード
DBU単価(目安)低い(Jobs Compute料金)高い(All-Purpose Compute料金)中間(SQL Compute料金)
ライフサイクルジョブ開始時に自動作成、終了時に自動削除手動またはAPI起動、手動停止またはAuto Terminate手動起動、Auto Stop で自動停止
ユーザー共有不可(ジョブ専用)可能(複数ユーザーが同時利用)可能(複数ユーザーのクエリを処理)
対応言語Python / Scala / R / SQL / Spark SubmitPython / Scala / R / SQLSQLのみ
Photonオプション(有効化可能)オプション(有効化可能)デフォルト有効
Unity Catalog対応対応(Shared / Single User Mode)対応(Shared / Single User Mode)完全対応(常にUC統合)
Init ScriptGlobal / Cluster-scoped(Single User時)Global / Cluster-scoped(Single User時)非対応
スケーリングAutoscaling(ノード数)Autoscaling(ノード数)クラスタ数の自動増減
Serverless版Serverless JobsServerless NotebooksServerless SQL Warehouse

選択判断フロー

ワークロードの特性に応じて以下のフローで選択します。

判断ステップ1: ワークロードの性質

  • スケジュール実行・自動化されたバッチ処理 → Job Cluster
  • ノートブックでの対話的な開発・デバッグ → All-Purpose Cluster
  • SQL分析・BI連携・ダッシュボード → SQL Warehouse

判断ステップ2: 言語の要件

  • Python / Scala / R が必要 → Job ClusterまたはAll-Purpose Cluster
  • SQLのみ → SQL Warehouseが最適

判断ステップ3: コスト感度

  • DBUコストを最小化したい本番ジョブ → Job Cluster(単価が最も低い)
  • 常時起動のコストを許容できる開発環境 → All-Purpose Cluster
  • SQL分析のコスト効率を重視 → SQL Warehouse + Auto Stop

Job Clusterの特徴と設計ポイント

Job Clusterはジョブの実行と密接に結びついています。 Databricks Jobを定義する際にnew_clusterフィールドでクラスタスペックを指定すると、 そのジョブのRunが開始されるたびにクラスタが新規作成され、Run完了後に自動削除されます。

  • ジョブ実行時のみDBUが発生し、アイドルコストはゼロ
  • 毎回クリーンな環境で実行されるため、状態の汚染がない
  • Cluster Policyを適用してスペックを統制可能
  • Instance Poolと組み合わせると起動時間を短縮できる

All-Purpose Clusterの特徴と設計ポイント

All-Purpose Clusterは対話的な開発作業に最適化されています。 複数のノートブックを同時にアタッチして実行でき、デバッグやデータ探索に適しています。

  • 起動後は手動停止またはAuto Terminate(デフォルト120分のアイドルで自動停止)まで課金が継続
  • DBU単価がJob Clusterより高いため、本番バッチ実行には不向き
  • ライブラリのインストールやSpark設定の変更を即座に反映できる
  • 複数ユーザーがShared Access Modeで共有する場合、リソース競合に注意

SQL Warehouseの特徴と設計ポイント

SQL WarehouseはSQL専用のコンピュートで、Databricks SQL UIやBI連携ツール(Tableau / Power BI等)から 接続してクエリを実行します。

  • Photonエンジンがデフォルト有効で、SQL実行が高速
  • Result Cache / Disk Cache / IWMによるクエリ性能の自動最適化
  • クラスタ数の自動増減で同時実行をスケールアウト
  • Python / Scala / Rの実行は不可
  • 常にUnity Catalogと統合されており、ガバナンスが確保される

コスト最適化パターン

パターン対策期待効果
開発者がAll-Purposeで本番バッチを実行Job Clusterに移行DBU単価低下 + アイドルコスト削減
All-Purpose Clusterの起動放置Auto Terminateを30〜60分に設定アイドルDBUの削減
大規模クラスタの固定ノード数Autoscaling有効化(min=1, max=N)低負荷時のノード数自動削減
SQL分析とPython開発を同じクラスタで実行SQL → SQL Warehouse、Python → All-Purpose に分離各ワークロードに最適なコンピュートを使用
開発用クラスタでGPUインスタンスを利用Cluster PolicyでインスタンスタイプをCPU系に制限不要な高額インスタンスの使用を防止
Job Clusterの起動に時間がかかるInstance Poolで待機インスタンスを確保起動時間短縮(数分→数十秒)

試験で問われるポイント

  • 「本番ETLジョブに最もコスト効率の良いコンピュートは」→ Job Cluster
  • 「複数の分析者がSQLクエリを同時実行する場合に推奨されるコンピュートは」→ SQL Warehouse
  • 「ノートブックでPythonのML実験を行うのに適したコンピュートは」→ All-Purpose Cluster
  • 「Job ClusterとAll-Purpose ClusterのDBU単価の違い」→ Job Clusterの方が低い
  • 「SQL WarehouseでPython UDFを直接実行できるか」→ できない(SQLのみ対応)

問題で確認

Data Engineer Associate

問題 1

あるチームがDatabricksで以下の3つのワークロードを運用している。(1) 毎日6:00 AMに実行されるPySparkのETLパイプライン、(2) データサイエンティスト3名による対話的なML実験、(3) 経営層向けダッシュボード(20枚のSQLレポート)。コストを最小化しつつすべてのワークロードを適切に処理するコンピュート構成はどれか。

  1. すべてのワークロードを1つの大型All-Purpose Clusterで実行する
  2. ETL → Job Cluster、ML実験 → All-Purpose Cluster、ダッシュボード → SQL Warehouse
  3. ETL → SQL Warehouse、ML実験 → SQL Warehouse、ダッシュボード → All-Purpose Cluster
  4. ETL → All-Purpose Cluster、ML実験 → Job Cluster、ダッシュボード → Job Cluster

正解: B

各ワークロードに最適なコンピュートを割り当てるBが正解です。ETLはJob Clusterで低DBU単価+自動終了、ML実験はAll-Purpose Clusterで対話的開発、ダッシュボードはSQL Warehouseで高速SQL+キャッシュ+同時実行スケーリングを活用します。Aは高DBU単価で非効率、CはSQL WarehouseでPySparkが実行できず、DはJob Clusterでの対話的開発は不可能です。

よくある質問

All-Purpose ClusterをETLの本番実行に使ってはいけないのですか?

技術的には動作しますが、2つの理由で推奨されません。第一にDBU単価がJob Clusterより高い(All-Purpose: 約0.40 DBU/h vs Job: 約0.15 DBU/h ※リージョンにより変動)ため、日次バッチを毎日All-Purpose Clusterで実行するとコストが2倍以上になります。第二にAll-Purpose Clusterは常時起動が前提でアイドルコストが発生しますが、Job Clusterはジョブ実行時のみ起動・終了するため無駄がありません。

SQL WarehouseとAll-Purpose Clusterでどちらもクエリを実行できますが、使い分けの基準は?

SQL中心のワークロード(ダッシュボード、レポート、アドホック分析)にはSQL Warehouseを使い、Python/Scala/Rの対話的開発やML実験にはAll-Purpose Clusterを使います。SQL Warehouseはクエリ最適化エンジン(Photon)が標準で有効で、Result Cache / Disk Cache / IWMによるSQL性能が圧倒的に優れています。

Serverless ComputeはJob Cluster / All-Purpose Cluster / SQL Warehouseのどれに該当しますか?

Serverlessは3つのコンピュートタイプそれぞれにオプションとして存在します。Serverless SQL WarehouseはSQL向け、Serverless NotebooksはPythonの対話的開発向け、Serverless Jobsはジョブ実行向けです。いずれもインフラ管理が不要で起動が高速ですが、カスタムライブラリやInit Scriptに制約があります。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (105件)
© 2026 NicheeLab All rights reserved.