Azure Databricks のデータベース オブジェクト
Azure Databricks では、2 つの主要なセキュリティ保護可能なオブジェクトを使用して、データの格納とアクセスを行います。
- テーブルは、表形式データへのアクセスを制御します。
- ボリュームは、表形式以外のデータへのアクセスを制御します。
この記事では、これらのデータベース オブジェクトが Azure Databricks のカタログ、スキーマ、ビュー、およびその他のデータベース オブジェクトとどのように関連しているかについて説明します。 また、この記事では、プラットフォーム アーキテクチャ全体のコンテキストでのデータベース オブジェクトの動作の概要についても説明します。
Azure Databricks のデータベース オブジェクトとは
データベース オブジェクトは、データの整理、アクセス、管理に役立つエンティティです。 Azure Databricks では、3 層階層構造を使用してデータベース オブジェクトを整理します。
- カタログ: 最上位レベルのコンテナーであり、スキーマが含まれています。 Azure Databricks のカタログの説明を参照してください。
- スキーマまたはデータベース: データ オブジェクトが含まれています。 Azure Databricks のスキーマの説明を参照してください。
- スキーマに含められるデータ オブジェクト:
- ボリューム: クラウド オブジェクト ストレージ内の表形式以外のデータの論理ボリューム。 「Unity Catalog ボリュームとは」を参照してください。
- テーブル: 行と列で編成されたデータのコレクション。 「 テーブルとビューとはを参照してください。
- 表示: 1 つ以上のテーブルに対して保存されたクエリ。 ビューの説明を参照してください。
- 関数: スカラー値または行のセットを返す保存されたロジック。 「Unity Catalog のユーザー定義関数 (UDF)」を参照してください。
- モデル: MLflow でパッケージ化された機械学習モデル。 「Unity Catalog 内でモデル ライフサイクルを管理する」をご覧ください。
カタログは、アカウント レベルで管理されるメタストアに登録されます。 管理者のみが、メタストアを直接操作します。 メタストアを参照してください。
Azure 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 でワークスペースが手動で有効にされた場合、default
という名前の既定のスキーマが main
カタログに含まれており、ワークスペース内のすべてのユーザーがアクセスできます。 ワークスペースで Unity Catalog が自動的に有効になっていて、<workspace-name>
カタログが含まれている場合、そのカタログには、ワークスペース内のすべてのユーザーがアクセスできる default
という名前のスキーマが含まれます。
データベース オブジェクトとワークスペースのセキュリティ保護可能なデータ資産
Azure Databricks を使用すると、データベース オブジェクトと共に複数の Data Engineering、分析、ML、AI 資産を管理できます。 これらのデータ資産は Unity Catalog に登録しません。 代わりに、これらの資産は、アクセス許可を管理するために制御リストを使用して、ワークスペース レベルで管理されます。 これらのデータ資産には、次のものが含まれます。
- ノートブック
- ダッシュボード
- ジョブ
- Pipelines
- ワークスペース ファイル
- SQL クエリ
- 実験
ほとんどのデータ資産には、データのクエリ、関数の使用、モデルの登録、またはその他の一般的なタスクを行うためにデータベース オブジェクトと対話するロジックが含まれています。 ワークスペース データ資産のセキュリティ保護の詳細については、「アクセス制御リスト」を参照してください。
Note
コンピューティングへのアクセスは、アクセス制御リストによって制御されます。 アクセス モードでコンピューティングを構成し、ユーザーがデータにアクセスする方法を制御するクラウド アクセス許可を追加できます。 Databricks では、データ ガバナンスのベスト プラクティスとして、コンピューティング ポリシーを使用し、クラスター作成特権を制限することをお勧めします。 「アクセス モード」を参照してください。
セキュリティ保護可能な資格情報とインフラストラクチャの Unity Catalog
Unity Catalog は、メタストア レベルで登録されたセキュリティ保護可能なオブジェクトを使用して、クラウド オブジェクト ストレージ、データ共有、クエリフェデレーションへのアクセスを管理します。 これらのデータのセキュリティ保護可能でないオブジェクトの簡単な説明を次に示します。
Unity Catalog のクラウド オブジェクト ストレージへの接続
新しいマネージド ストレージの場所を作成する、または外部テーブルや外部ボリュームを登録するには、ストレージ資格情報と外部の場所を定義する必要があります。 これらのセキュリティ保護可能なオブジェクトは、Unity Catalog に登録されます。
- ストレージの資格情報: クラウド ストレージへのアクセスを提供する長期的なクラウドの資格情報。
- 外部の場所: ペアのストレージ資格情報を使用してアクセスできるクラウド オブジェクト ストレージ パスへの参照。
「Unity Catalog を使用したクラウド オブジェクト ストレージへの接続」を参照してください。
Delta Sharing
Azure Databricks は、Unity Catalog に次の Delta Sharing セキュリティ保護可能なオブジェクトを登録します。
- 共有: テーブル、ボリューム、およびその他のデータ資産の読み取り専用コレクション。
- プロバイダー: データを共有する組織またはエンティティ。 Databricks から Databricks への共有モデルでは、プロバイダーは受信者の Unity Catalog メタストアに、そのメタストア ID で識別される一意のエンティティとして登録されます。
- 受信者: プロバイダーから共有を受け取るエンティティ。 Databricks から Databricks への共有モデルでは、受信者は一意のメタストア ID によってプロバイダーに識別されます。
「Delta Sharing とは」を参照してください。
Lakehouse フェデレーション
Lakehouse Federation を使用すると、外部カタログを作成して、PostgreSQL、MySQL、Snowflake などの他のシステムに存在するデータへの読み取り専用アクセスを提供できます。 外部カタログを作成するには、外部システムへの接続を定義する必要があります。
接続: Unity Catalog のセキュリティ保護可能なオブジェクトは、Lakehouse フェデレーション シナリオで外部データベース システムにアクセスするためのパスと資格情報を指定します。
「Lakehouse フェデレーションとは」をご覧ください。
マネージド ボリュームとテーブルのマネージド ストレージの場所
Azure Databricks のテーブルとボリュームを作成する場合は、マネージドまたは外部のどちらにするかを選択できます。 Unity Catalog は、Azure Databricks から外部テーブルとボリュームへのアクセスを管理しますが、基になるファイルは制御せず、それらのファイルのストレージの場所を完全に管理することもありません。 一方、マネージド テーブルとボリュームは Unity Catalog によって完全に管理され、格納されたスキーマに関連付けられているマネージド ストレージの場所に格納されます。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。
Databricks では、構成、最適化、ガバナンスが簡素化されるため、ほとんどのワークロードに対してマネージド ボリュームとマネージド テーブルが推奨されます。
Unity Catalog とレガシ Hive メタストアとの比較
Databricks では、すべてのデータベース オブジェクトの登録と管理に Unity Catalog を使用することをお勧めしますが、スキーマ、テーブル、ビュー、関数を管理するための Hive メタストアのレガシ サポートも提供します。
Hive メタストアを使用して登録されたデータベース オブジェクトを操作する場合は、「レガシ Hive メタストア内のデータベース オブジェクト」を参照してください。