Databricksには3種類のコンピュートリソースがあり、それぞれ設計思想が異なります。 「とりあえずAll-Purpose Clusterで全部やる」という運用はコスト面で非効率であり、 「SQL WarehouseでPythonを書こうとした」という間違いも初学者がはまりやすい落とし穴です。 この記事では、3つのコンピュートの本質的な違いと、ワークロードに応じた選択基準を整理します。
| 観点 | Job Cluster | All-Purpose Cluster | SQL Warehouse |
|---|---|---|---|
| 主な用途 | 本番ETL・スケジュールジョブ | 対話的開発・探索・ML実験 | SQL分析・BI連携・ダッシュボード |
| DBU単価(目安) | 低い(Jobs Compute料金) | 高い(All-Purpose Compute料金) | 中間(SQL Compute料金) |
| ライフサイクル | ジョブ開始時に自動作成、終了時に自動削除 | 手動またはAPI起動、手動停止またはAuto Terminate | 手動起動、Auto Stop で自動停止 |
| ユーザー共有 | 不可(ジョブ専用) | 可能(複数ユーザーが同時利用) | 可能(複数ユーザーのクエリを処理) |
| 対応言語 | Python / Scala / R / SQL / Spark Submit | Python / Scala / R / SQL | SQLのみ |
| Photon | オプション(有効化可能) | オプション(有効化可能) | デフォルト有効 |
| Unity Catalog対応 | 対応(Shared / Single User Mode) | 対応(Shared / Single User Mode) | 完全対応(常にUC統合) |
| Init Script | Global / Cluster-scoped(Single User時) | Global / Cluster-scoped(Single User時) | 非対応 |
| スケーリング | Autoscaling(ノード数) | Autoscaling(ノード数) | クラスタ数の自動増減 |
| Serverless版 | Serverless Jobs | Serverless Notebooks | Serverless SQL Warehouse |
ワークロードの特性に応じて以下のフローで選択します。
Job Clusterはジョブの実行と密接に結びついています。 Databricks Jobを定義する際にnew_clusterフィールドでクラスタスペックを指定すると、 そのジョブのRunが開始されるたびにクラスタが新規作成され、Run完了後に自動削除されます。
All-Purpose Clusterは対話的な開発作業に最適化されています。 複数のノートブックを同時にアタッチして実行でき、デバッグやデータ探索に適しています。
SQL WarehouseはSQL専用のコンピュートで、Databricks SQL UIやBI連携ツール(Tableau / Power BI等)から 接続してクエリを実行します。
| パターン | 対策 | 期待効果 |
|---|---|---|
| 開発者が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で待機インスタンスを確保 | 起動時間短縮(数分→数十秒) |
Data Engineer Associate
問題 1
あるチームがDatabricksで以下の3つのワークロードを運用している。(1) 毎日6:00 AMに実行されるPySparkのETLパイプライン、(2) データサイエンティスト3名による対話的なML実験、(3) 経営層向けダッシュボード(20枚のSQLレポート)。コストを最小化しつつすべてのワークロードを適切に処理するコンピュート構成はどれか。
正解: 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に制約があります。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全7試験・難易度・勉強法
Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...
Databricks試験の難易度ランキング|全7資格を徹底比較
Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...