Databricks

Shared compute 設計ガイド:マルチユーザー利用とセキュリティ

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

Databricksの Shared compute(共有コンピュート)は、1つのクラスタを複数ユーザーで同時に利用できるアクセスモードです。 Unity Catalogを前提としたプロセス分離により、ユーザー間のデータ漏洩を防ぎつつ、 クラスタ台数を削減してコストを大幅に最適化できます。

ただし、Sharedモードには「RDD不可」「MLランタイム非対応」「カスタムUDF制限」など、 Single Userモードにはない重要な制約があります。 この記事では、Sharedモードの隔離メカニズム、制約の全体像、コスト最適化の効果、 そしてSingle User / Sharedの選択判断フローを解説します。

Sharedアクセスモードの概要

Sharedモードは、1つのクラスタリソースを複数のユーザーが同時に使用できるアクセスモードです。 各ユーザーはクラスタにアタッチして自分のノートブックを実行しますが、 内部ではプロセスレベルの分離が行われ、他のユーザーのデータやコードにはアクセスできません。

Sharedモードでは以下の動作が保証されます。

  • 各ユーザーのコードは隔離されたプロセスで実行される
  • UCの権限チェックが各ユーザーの資格情報に基づいて行われる
  • あるユーザーが別のユーザーの一時テーブルやビューにアクセスできない
  • クラスタレベルのリソース(CPU / メモリ)は公平にスケジューリングされる

Unity Catalog前提の隔離メカニズム

Sharedモードのセキュリティは、Unity Catalogのデータガバナンスレイヤーとプロセス分離の2層構造で実現されています。

隔離レイヤー仕組み防ぐ脅威
データアクセス制御UCのGRANT / DENYで各ユーザーの権限を個別チェック権限のないテーブルへのアクセス
プロセス分離各ユーザーのPythonプロセスを独立して実行他ユーザーのメモリ空間への侵入
一時オブジェクトの分離TEMP VIEW / TEMP TABLEはセッション内でのみ可視他ユーザーの中間データの窃取
シークレットの分離dbutils.secrets.getはユーザーACLで制御他ユーザーのクレデンシャルへのアクセス

Sharedモードの制約一覧

Sharedモードはセキュリティと引き換えに、以下の機能が制限されます。 これは試験で頻出のテーマであり、実務でのモード選択にも直結します。

制約カテゴリ制約内容理由
低レベルAPIRDD / SparkContext / sc.parallelize() 使用不可RDDは任意のバイトコードを実行でき、プロセス分離をバイパスする可能性があるため
MLランタイムDBR MLを選択できない(ML系ライブラリが使えない)MLライブラリはネイティブコード実行を伴い、分離境界を超える可能性があるため
カスタムUDFセッション内のインラインPython UDF / Pandas UDFが制限される任意のPythonコードがワーカーで実行されるため(UC登録済みUDFは利用可能)
Init Scriptsクラスタスコープのinit scriptsが使用不可Init scriptsは特権プロセスとして実行され、分離メカニズムを迂回できるため
ライブラリクラスタレベルでの任意ライブラリインストールが制限される共有環境でのライブラリ競合と、ネイティブ拡張による分離バイパスを防止するため
Spark設定セキュリティに関わるSpark設定の変更が禁止分離メカニズムの無効化を防止するため

コスト最適化の利点

Sharedモードの最大のメリットはコスト効率です。 Single Userモードでは各ユーザーがクラスタを占有するため、チーム人数分のクラスタが必要になります。 Sharedモードでは1〜2台のクラスタを全員で共有するため、以下のコスト削減効果があります。

  • クラスタ台数の削減:10人チームで10台 → 1〜2台に集約。ドライバーノードのコストだけでも大幅に削減
  • アイドル時間の削減:Single Userでは各ユーザーが離席中もクラスタが稼働し続けるが、 Sharedでは他のユーザーがリソースを利用するため、無駄が減る
  • オートスケールの効率化:複数ユーザーの負荷を集約するため、 ワーカーの稼働率が高くなり、スケールダウンの判断も効率的になる
  • Instance Poolの共有:1つのPoolを全ユーザーで共有するため、 事前確保インスタンスの稼働率も高まる

Single User vs Shared 選択判断フロー

実務でどちらのモードを選ぶかは、ワークロードの要件に基づいて判断します。 以下の判断フローに従って選択してください。

[ワークロードにML系ライブラリ/GPUが必要?]
  ├─ Yes → Single User(DBR ML)
  └─ No
      ├─ [RDD / SparkContext / 低レベルAPIが必要?]
      │   ├─ Yes → Single User
      │   └─ No
      │       ├─ [カスタムinit scripts / 任意ライブラリが必要?]
      │       │   ├─ Yes → Single User
      │       │   └─ No
      │       │       ├─ [複数ユーザーが同時利用?]
      │       │       │   ├─ Yes → Shared(コスト効率◎)
      │       │       │   └─ No → Single User or Shared(どちらでも可)
      │       │       └─ END
      │       └─ END
      └─ END

SharedモードとSingle Userの比較表

比較項目SharedSingle User
同時利用複数ユーザー可1人のみ
MLランタイム非対応対応
RDD / SparkContext不可
カスタムUDF制限あり(UC登録済みUDFのみ)制限なし
Init Scripts不可
コスト効率高い(クラスタ共有)低い(専有)
実行アイデンティティ各ユーザーの資格情報アタッチしたユーザーの資格情報
UC必須はいはい(UC有効環境の場合)

試験で問われるポイント

Sharedモードは、Data Engineer Associate / Platformアドミン系の試験で頻出です。 以下のパターンが問われます。

  • 「複数ユーザーがコストを抑えてクラスタを共有したい」→ Shared
  • 「SharedモードでRDDを使おうとしたらエラーになった。原因は?」→ プロセス分離のためRDD不可
  • 「SharedモードでMLワークロードを実行できるか?」→ できない(DBR ML非対応)
  • 「SharedモードでUDFを使う方法は?」→ UCに登録済みのUDFのみ利用可能
  • 「Sharedモードのセキュリティは何で担保されるか?」→ UC権限 + プロセス分離

問題で確認

Data Engineer Associate / Platform Admin

問題 1

20人のデータアナリストがSQLとPySpark DataFrameでETL処理を行っている。全員がSingle Userクラスタを使っているため月額コストが高騰している。MLライブラリやRDDは使用していない。最もコスト効率の高い対策はどれか。

  1. 全員のクラスタをSpot Instanceに変更する
  2. Sharedモードのクラスタを2〜3台用意し、全員をそこにアタッチさせる
  3. SQL WarehouseにすべてのETL処理を移行する
  4. 各ユーザーのクラスタサイズを最小化し、autotermination_minutesを5分に設定する

正解: B

MLライブラリもRDDも使っていないため、Sharedモードの制約に抵触しません。20台のSingle Userクラスタを2〜3台のSharedクラスタに集約することで、ドライバーノードのコストとアイドル時間を大幅に削減できます。Spot Instanceはコスト削減になりますが台数は変わりません。SQL WarehouseではPySparkが使えません。クラスタサイズの最小化は限定的な効果です。

よくある質問

SharedモードでRDDやSparkContextを使うとどうなりますか?

実行時にエラーになります。Sharedモードではプロセス分離のためにRDD APIとSparkContextへの直接アクセスが禁止されています。spark.read / spark.sql / DataFrameAPIは使用可能ですが、sc.parallelize()やrdd.map()などの低レベルAPIは利用できません。これらが必要な場合はSingle Userモードに切り替える必要があります。

SharedモードでPython UDFは全く使えないのですか?

完全に使えないわけではありません。Unity Catalogに登録された管理済みUDF(CREATE FUNCTION文でSQL/Python UDFを定義)は使用可能です。一方、セッション内でspark.udf.register()で登録するインラインPython UDFやPandas UDFは制限されます。試験ではこの「UCに登録されたUDFは使える」という点がよく問われます。

SharedモードとSingle Userモードのコスト差はどの程度ですか?

DBU単価自体は同じですが、運用コストに大きな差が出ます。10人チームで各自がSingle Userクラスタを起動するとクラスタ10台分のコストがかかりますが、Sharedモードなら1〜2台のクラスタで全員が作業でき、アイドル時間も削減されます。SQLベースの作業が中心のチームでは、Shared化で60〜80%のコスト削減事例もあります。

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

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.