Databricks のデータベース オブジェクト
Databricks は、データの保存とアクセスに 2 つの主要なセキュリティ保護可能なオブジェクトを使用します。
テーブルは、表形式のデータへのアクセスを制御します。
ボリュームは、表形式以外のデータへのアクセスを制御します。
この記事では、これらのデータベース オブジェクトが Databricks のカタログ、スキーマ、ビュー、およびその他のデータベース オブジェクトとどのように関連しているかについて説明します。 また、この記事では、プラットフォーム アーキテクチャ全体のコンテキストでデータベース オブジェクトがどのように機能するかについても概説します。
Databricks のデータベース オブジェクトとは何ですか?
データベース オブジェクトは、データの整理、アクセス、および管理に役立つエンティティです。 Databricks は、3 層階層を使用してデータベース オブジェクトを整理します。
カタログ: 最上位のコンテナーには、スキーマが含まれています。 「Databricks のカタログとは何ですか?」を参照してください。
スキーマ またはデータベース: データ・オブジェクトが含まれます。 「Databricks のスキーマとは何ですか?」を参照してください。
スキーマに含めることができるデータオブジェクト:
ボリューム: クラウド オブジェクト ストレージ内の非表形式データの論理ボリューム。 Unity Catalogボリュームとは何ですか?」を参照してください。
テーブル: 行と列で整理されたデータのコレクション。 「テーブルとビューとは」を参照してください。
ビュー: 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と従来のHive metastoreの比較
Databricks 、すべてのデータベース オブジェクトを登録および管理するためにUnity Catalogを使用することを推奨していますが、スキーマ、テーブル、ビュー、および関数を管理するためのHive metastoreの従来のサポートも提供しています。
Hive metastoreを使用して登録されたデータベース オブジェクトを操作する場合は、 「従来のHive metastore内のデータベース オブジェクト」を参照してください。