Databricks のデータベースオブジェクト
Databricks では、2 つの主要なセキュリティ保護可能なオブジェクトを使用して、データの格納とアクセスを行います。
- テーブル は、表形式のデータへのアクセスを制御します。
- ボリューム は、表形式以外のデータへのアクセスを制御します。
この記事では、これらのデータベース オブジェクトが Databricks のカタログ、スキーマ、ビュー、およびその他のデータベース オブジェクトとどのように関連しているかについて説明します。 この記事では、プラットフォーム アーキテクチャ全体のコンテキストでデータベース オブジェクトがどのように機能するかについて、概要についても説明します。
Databricks のデータベース オブジェクトとは
データベース・オブジェクトは、データの編成、アクセス、および管理を支援するエンティティです。 Databricks では、3 層の階層を使用してデータベース オブジェクトを整理します。
- カタログ : 最上位のコンテナーには、スキーマが含まれています。 「Databricks のカタログとは」を参照してください。
- スキーマ またはデータベース: データ・オブジェクトが含まれます。 「Databricks のスキーマとは」を参照してください。
- スキーマに含めることができるデータオブジェクト:
- ボリューム : クラウドオブジェクトストレージ内の非表形式データの論理ボリューム。 Unity Catalogボリュームとはを参照してください。
- テーブル : 行と列で整理されたデータのコレクション。「 Databricks テーブル」を参照してください。
- 表示 : 1 つ以上のテーブルに対して保存されたクエリ。 「ビューとは」を参照してください。
- 関数 : スカラー値または行のセットを返す保存されたロジック。 「Unity Catalog のユーザー定義関数 (UDF)」を参照してください。
- モデル : MLflow にパッケージ化された機械学習モデル。 Unity Catalog でのモデルのライフサイクルの管理を参照してください。

カタログは、アカウント レベルで管理されるメタストアに登録されます。管理者のみがメタストアと直接対話します。「メタストア」を参照してください。
Databricks には、データを操作するための追加のアセットが用意されており、これらはすべてワークスペース レベルのアクセス制御または Unity Catalogを使用して制御でき、 Databricks データガバナンス ソリューションは次のとおりです。
- ワークスペース レベルのデータ資産 (ノートブック、ジョブ、クエリなど)。
- ストレージ資格情報や Delta Sharing 共有などの Unity Catalog のセキュリティ保護可能なオブジェクト。これらは主にストレージへのアクセスやセキュリティで保護された共有を制御します。
詳細については、「 データベース オブジェクトとワークスペースのセキュリティ保護可能なデータ資産 」および「 Unity Catalog のセキュリティ保護可能な資格情報とインフラストラクチャ」を参照してください。
Unity Catalog を使用したデータベース オブジェクトへのアクセスの管理
データベース オブジェクトへのアクセスは、メタストア自体を含め、階層内の任意のレベルで許可および取り消すことができます。 オブジェクトへのアクセスは、アクセスが取り消されない限り、そのオブジェクトのすべての子に同じアクセスを暗黙的に付与します。
一般的な ANSI SQL コマンドを使用して、Unity Catalog 内のオブジェクトへのアクセスを許可および取り消すことができます。 また、カタログエクスプローラ を使用して、データ オブジェクト特権を UI 主導で管理することもできます。
Unity Catalogでのオブジェクトのセキュリティ保護の詳細については、「Unity Catalogのセキュリティ保護可能なオブジェクト」を参照してください。
Unity Catalog のデフォルトのオブジェクト権限
ワークスペースの作成方法と Unity Catalogの有効化方法によっては、ユーザーは、main カタログまたは ワークスペース カタログ (<workspace-name>) を含む、自動的にプロビジョニングされたカタログに対するデフォルトのアクセス許可を持っている場合があります。 詳細については、「 デフォルトのユーザー権限」を参照してください。
ワークスペースで手動で Unity Catalog が有効になっている場合は、ワークスペース内のすべてのユーザーがアクセスできる main カタログに default という名前のデフォルト スキーマが含まれます。 ワークスペースで Unity Catalog が自動的に有効になり、 <workspace-name> カタログが含まれている場合、そのカタログには、ワークスペース内のすべてのユーザーがアクセスできる default という名前のスキーマが含まれています。
データベースオブジェクトとワークスペースのセキュリティ保護可能なデータ資産
Databricks では、複数のデータエンジニアリング、アナリティクス、 ML、および AI アセットをデータベースオブジェクトと共に管理できます。 これらのデータ資産を Unity Catalogに登録することはありません。 代わりに、これらのアセットはワークスペース レベルで管理され、コントロール リストを使用してアクセス許可を制御します。 これらのデータ資産には、次のものが含まれます。
- ノートブック
- ダッシュボード
- ジョブ
- パイプライン
- ワークスペース ファイル
- SQL クエリ
- エクスペリメント
ほとんどのデータ資産には、データベースオブジェクトと対話してデータをクエリしたり、関数を使用したり、モデルを登録したり、その他の一般的なタスクを行うロジックが含まれています。 ワークスペースのデータ資産の保護の詳細については、「 アクセス制御リスト」を参照してください。
コンピュートへのアクセスは、アクセス制御リストによって管理されます。 コンピュートをアクセス モードで構成し、ユーザーがデータにアクセスする方法を制御するクラウド権限を追加できます。 Databricks では、データガバナンスのベストプラクティスとして、コンピュート ポリシーを使用し、クラスター作成権限を制限することを推奨しています。 アクセスモードを参照してください。
Unity Catalog のセキュリティ保護可能な資格情報とインフラストラクチャ
Unity Catalog は、メタストア レベルで登録されたセキュリティ保護可能なオブジェクトを使用して、クラウド オブジェクト ストレージ、データ共有、クエリ フェデレーションへのアクセスを管理します。 次に、これらの非データ セキュリティ保護オブジェクトについて簡単に説明します。
Unity Catalog をクラウド オブジェクト ストレージに接続する
新しいマネージドストレージの場所を作成したり、外部テーブルまたは外部ボリュームを登録したりするには、ストレージ資格情報と外部場所を定義する必要があります。 これらのセキュリティ保護可能なオブジェクトはUnity Catalogに登録されています:
- ストレージ資格情報 : クラウド ストレージへのアクセスを提供する長期的なクラウド資格情報。
- 外部ロケーション : ペアのストレージ資格情報を使用してアクセス可能なクラウドオブジェクトストレージパスへの参照。
「Unity Catalog を使用してクラウド オブジェクト ストレージに接続する」を参照してください。
Delta Sharing
Databricksは以下のDelta Sharingのセキュリティ保護可能なオブジェクトをUnity Catalogに登録します:
- 共有 : テーブル、ボリューム、およびその他のデータ資産の読み取り専用コレクション。
- プロバイダー : データを共有する組織またはエンティティ。Databricks-to-Databricks共有モデルでは、プロバイダーは、メタストア ID によって識別される一意のエンティティとして、受信者のUnity Catalogメタストアに登録されます。
- 受信者 : プロバイダーから共有を受け取るエンティティ。 Databricks-to-Databricks共有モデルでは、受信者は一意のメタストア ID によってプロバイダーに識別されます。
「Delta Sharing とは」を参照してください。
レイクハウスフェデレーション
レイクハウスフェデレーションでは、フォーリンカタログを作成して、 PostgreSQL 、 MySQL 、 Snowflakeなどの他のシステムにあるデータへの読み取り専用アクセスを提供できます。 フォーリンカタログを作成するには、外部システムへの接続を定義する必要があります。
接続 : Unity Catalog のセキュリティ保護可能なオブジェクトは、レイクハウスフェデレーション シナリオで外部データベース システムにアクセスするためのパスと資格情報を指定します。
「レイクハウスフェデレーションとは」を参照してください。
管理されたボリュームとテーブルの管理されたストレージの場所
Databricksでテーブルとボリュームを作成する際、それらを 管理対象に するか 外部に するかを選択できます。Unity Catalog 、 Databricksからの外部テーブルとボリュームへのアクセスを管理しますが、基になるファイルを制御したり、それらのファイルの保存場所をフルマネージドしたりすることはありません。 一方、マネージドテーブルとボリュームはUnity Catalogによるフルマネージドであり、含まれるスキーマに関連付けられた 管理されたストレージの場所 に保存されます。 Unity Catalogで管理ストレージの場所を指定する方法については、こちらをご覧ください。
Databricks では、ほとんどのワークロードでマネージド ボリュームとマネージド テーブルを推奨しています。これは、構成、最適化、ガバナンスが簡略化されるためです。
Unity Catalog vs. レガシー Hive metastore
Databricks では、すべてのデータベース・オブジェクトの登録と管理に Unity Catalog を使用することをお勧めしますが、スキーマ、テーブル、ビュー、および関数を管理するための Hive metastore のレガシー・サポートも提供します。
Hive metastoreを使用して登録したデータベースオブジェクトを操作する場合は、レガシーHive metastoreのデータベースオブジェクトを参照してください。