Databricksのクラスタ(Compute)を作成する際、最初に選択を求められるのがAccess Modeです。 Access Modeはクラスタの分離レベルとUnity Catalog対応を決定し、一度起動すると変更できません。 選択を誤ると「Unity CatalogのテーブルにアクセスできないMLプロジェクトのクラスタ」や 「セキュリティ監査に引っかかる共有クラスタ」が生まれるため、管理者・開発者の双方が正しく理解すべきトピックです。
この記事では、3つのAccess Mode(Single User / Shared / No Isolation Shared)の技術的な違いを 比較表で整理し、Unity Catalog環境での推奨構成、ジョブクラスタと対話型クラスタの使い分け、 そしてDatabricks認定試験で出題されるパターンを網羅します。
Databricksのクラスタには3種類のAccess Modeがあります。それぞれのモードはプロセス分離の強度が異なり、 使える機能と制約も変わります。
| 比較項目 | Single User | Shared | No Isolation Shared |
|---|---|---|---|
| Unity Catalog対応 | 対応 | 対応 | 非対応 |
| 同時利用ユーザー数 | 1人(排他利用) | 複数人 | 複数人 |
| プロセス分離 | 排他のため分離不要 | プロセスレベル分離あり | 分離なし(同一プロセス) |
| 対応言語 | Python / SQL / Scala / R | Python / SQL / Scala(制約あり) | Python / SQL / Scala / R |
| RDD API | 利用可能 | 利用不可 | 利用可能 |
| カスタムライブラリ | 制約なし(pip/conda/jar) | ノートブックスコープのみ | 制約なし |
| init scripts | すべて利用可能 | 制限あり(global init scriptsのみ) | すべて利用可能 |
| MLランタイム | 対応 | 非対応 | 対応 |
| UDF(ユーザー定義関数) | Python / Scala UDF利用可能 | Python UDFのみ(制約つき) | Python / Scala UDF利用可能 |
| Spark Config カスタム | 自由に設定可能 | 一部制限あり | 自由に設定可能 |
| テーブルACL(レガシー) | 非対応 | 非対応 | 有効化可能 |
| セキュリティ推奨度 | 高(排他利用で安全) | 高(プロセス分離あり) | 低(分離なし・非推奨) |
Single User Modeはクラスタ作成時に「割り当てるユーザー」を1人指定し、そのユーザーだけがクラスタを利用できます。 他のユーザーがアタッチしようとするとエラーになります。
排他利用のためプロセス分離は不要で、RDD API、カスタムJARライブラリ、init scripts、 MLランタイム(GPU含む)など、Databricksの全機能を制約なく使用できます。 Unity Catalog環境では、Single User Modeが最も推奨される選択肢です。
Single User Modeのコスト上のトレードオフは「クラスタの共有ができない」点です。 10人のチームが同時作業するとき、全員がSingle Userクラスタを起動するとクラスタ数が10台に膨らみます。 この課題はクラスタポリシーでインスタンスタイプやオートターミネーション時間を制限し、 さらにServerless Computeを活用することで緩和できます。
Shared Modeは複数ユーザーが1つのクラスタを共有しつつ、プロセスレベルの分離で安全性を確保します。 Unity Catalogにも対応しているため、コスト効率を重視する対話型ワークロードに適しています。
ただし、プロセス分離のために以下の機能制約があります。
%pip installのみShared Modeは「SQLアナリストが中心のチーム」「コスト効率を最優先する軽量な探索分析」に適しています。 機械学習やRDDベースの処理が必要な場合はSingle User Modeを選択してください。
No Isolation Shared Modeは複数ユーザーが同一のJVMプロセス内でコードを実行するため、 ユーザー間のデータ分離が一切ありません。あるユーザーのPythonコードが他ユーザーの変数空間にアクセスしたり、 環境変数に設定された認証情報を読み取ったりするリスクがあります。
Unity Catalogでは細粒度のアクセス制御(テーブルごとのGRANT/REVOKE)を行いますが、 No Isolation Modeではプロセスレベルの分離がないため、Unity Catalogの権限境界を維持できません。 そのためUnity Catalog非対応であり、Databricksは新規環境での利用を推奨していません。
既存のNo Isolation Shared Modeクラスタを運用している場合、以下の移行パスが推奨されます。
| ユースケース | クラスタ種別 | 推奨Access Mode | 理由 |
|---|---|---|---|
| 本番ETLジョブ | Job Cluster | Single User(SP指定) | Service Principalの排他利用でセキュリティ・監査性が最も高い |
| 開発用ノートブック(ML) | All-Purpose | Single User | MLランタイム・RDD・カスタムライブラリを全て利用可能 |
| アナリスト向け共有 | All-Purpose | Shared | SQL中心でコスト効率を重視。複数人で1クラスタを共有 |
| SQL Warehouse | SQL Warehouse | (固有のAccess Mode) | SQL Warehouseは専用のアクセス制御モデルで動作 |
| レガシーRDDパイプライン | All-Purpose | Single User | RDD APIはShared Modeで使えないため |
Unity Catalogを有効化した環境では、Access Modeの選択がデータガバナンスの基盤になります。 以下の設計原則を推奨します。
# Cluster PolicyでAccess Modeを制限する定義例
{
"spark_conf.spark.databricks.cluster.profile": {
"type": "fixed",
"value": "singleNode",
"hidden": true
},
"access_mode": {
"type": "allowlist",
"values": ["SINGLE_USER", "USER_ISOLATION"],
"defaultValue": "SINGLE_USER"
}
}Access Modesは Data Engineer Associate、Platform Administration 関連のドメインで出題されます。 以下のパターンを整理しておきましょう。
Data Engineer / Administration
問題 1
データサイエンスチームがUnity Catalogに登録されたテーブルを使ってMLモデルをトレーニングしたい。MLランタイム(DBR ML)を使用し、カスタムPythonライブラリとRDD APIも必要である。管理者が設定すべきクラスタのAccess Modeとして最も適切なものはどれか。
正解: A
MLランタイム・RDD API・カスタムライブラリの3要件をすべて満たすのはSingle User Modeのみです。Shared ModeはRDD APIとMLランタイムが非対応のため不適格。No Isolation Shared ModeはUnity Catalog非対応のため、Unity Catalogのテーブルにアクセスできません。Access Modeを指定しないクラスタは存在せず、作成時に必ず選択が必要です。
Single User ModeとShared Modeの最大の違いは何ですか?
Single User Modeはクラスタを1ユーザー(または1 Service Principal)が排他的に使用し、RDD API・カスタムライブラリ・init scriptsを含むすべての機能を利用できます。一方、Shared Modeは複数ユーザーが同一クラスタを共有しますが、RDD APIが使えず、MLランタイムが非対応で、init scriptsにも制限があります。Unity Catalog環境ではSingle User Modeが推奨されます。
No Isolation Shared Modeはなぜ非推奨になったのですか?
No Isolation Shared Modeは複数ユーザーが同一プロセス空間でコードを実行するため、あるユーザーのコードが他ユーザーの変数や認証情報にアクセスできるリスクがあります。Unity Catalogではプロセス分離が必須のため、No Isolation Shared ModeはUnity Catalog非対応です。Databricksは新規環境での使用を推奨しておらず、既存環境でもSharedまたはSingle Userへの移行を推奨しています。
ジョブクラスタのAccess Modeはどう選ぶべきですか?
ジョブクラスタはデフォルトでSingle User Modeが割り当てられ、ジョブオーナーまたは指定したService Principalが排他利用します。ジョブは非対話的に1タスクずつ実行するため、複数ユーザーの共有が不要であり、Single User Modeが最適です。Unity Catalogのテーブルにアクセスするジョブは必ずSingle UserまたはShared Modeのクラスタが必要です。
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の出題...