Unity Catalog のマネージド ストレージの場所を指定する
マネージド ストレージの場所は、マネージド テーブルとマネージド ボリュームのデータを保存するためのクラウド オブジェクト ストレージ内の場所を指定します。
マネージド ストレージの場所をメタストア、カタログ、またはスキーマに関連付けることができます。 階層内の下位レベルのマネージド ストレージの場所は、マネージド テーブルまたはマネージド ボリュームの作成時に上位レベルで定義されたストレージの場所をオーバーライドします。
Databricks では、メタストア レベルとスキーマ レベルをオプションとして使用して、論理データ分離のためにカタログ レベルでマネージド ストレージを割り当てることをお勧めします。
Unity カタログに対して有効になっている新しいワークスペースは、メタストア レベルのマネージド ストレージの場所なしで自動的に作成されます。 ただし、Databricks パートナーとして個人用ステージング場所を使用するなど、一部の機能にはメタストア レベルのストレージが必要です。 「Unity Catalog の自動有効化」、「データ ガバナンスとデータ分離の構成要素」、「Unity Catalog メタストアを作成する」を参照してください。
マネージド ストレージの場所とは
マネージド ストレージの場所には、次のプロパティがあります。
- マネージド テーブルとマネージド ボリュームでは、データ ファイルとメタデータ ファイルがマネージド ストレージの場所に格納されます。
- マネージド ストレージの場所は、外部テーブルまたは外部ボリュームと重複できません。
次の表では、マネージド ストレージの場所を宣言し、Unity Catalog オブジェクトに関連付ける方法について説明します:
関連付けられた Unity Catalog オブジェクト | 設定方法 | 外部の場所との関係 |
---|---|---|
メタストア | メタストアの作成時にアカウント管理者によって構成されます。 | 外部の場所と重複することはできません。 |
カタログCatalog | MANAGED LOCATION キーワード (keyword) を使用してカタログの作成時に指定します。 |
外部の場所に含まれている必要があります。 |
[スキーマ] | MANAGED LOCATION キーワード (keyword) を使用してスキーマの作成時に指定します。 |
外部の場所に含まれている必要があります。 |
マネージド テーブルとマネージド ボリュームのデータとメタデータを格納するマネージド ストレージの場所では、次の規則が使用されます:
- 格納されているスキーマに管理された場所がある場合、データはスキーマの管理された場所に格納されます。
- 格納されているスキーマには管理された場所がないが、カタログに管理された場所がある場合、データはカタログの管理された場所に格納されます。
- 格納スキーマと格納カタログのどちらも管理された場所がない場合、データはメタストアの管理された場所に格納されます。
Unity Catalog では、場所のガバナンスの重複が防止されます。 「Unity Catalog によって管理されるデータでのパスのしくみ」を参照してください。
マネージド ストレージの場所、ストレージ ルート、ストレージの場所
カタログまたはスキーマに対して MANAGED LOCATION
を指定すると、指定された場所が Unity Catalog のストレージ ルート として追跡されます。 すべてのマネージド エンティティが確実に一意の場所を持つように、Unity Catalog では次の形式を使用して、指定された場所にハッシュされたサブディレクトリを追加します。
オブジェクト | Path |
---|---|
[スキーマ] | <storage-root>/__unitystorage/schemas/00000000-0000-0000-0000-000000000000 |
カタログCatalog | <storage-root>/__unitystorage/catalogs/00000000-0000-0000-0000-000000000000 |
マネージド ストレージの場所の完全修飾パスは、Unity Catalog のストレージの場所として追跡されます。
複数のスキーマとカタログ用に同じマネージド ストレージの場所を指定できます。
必要な特権
外部の場所に対する CREATE MANAGED STORAGE
権限を持つユーザーは、カタログまたはスキーマの作成時にマネージド ストレージの場所を構成できます。
アカウント管理者は、メタストア レベルのオプションのマネージド ストレージの場所を追加できます。
メタストアのマネージド ストレージの場所を設定する
メタストアのマネージド ストレージの場所を設定するには、「既存のメタストアにマネージド ストレージを追加する」を参照してください。
カタログのマネージド ストレージの場所を設定する
次の例のように、カタログの作成時に MANAGED LOCATION
キーワードを使用して、カタログのマネージド ストレージの場所を設定します。
CREATE CATALOG <catalog-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';
カタログ エクスプローラーを使用して、カタログのマネージド ストレージの場所を設定することもできます。 「カタログの作成」を参照してください。
スキーマのマネージド ストレージの場所を設定する
次の例のように、スキーマの作成時に MANAGED LOCATION
キーワードを使用して、スキーマのマネージド ストレージの場所を設定します。
CREATE SCHEMA <catalog>.<schema-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';
カタログ エクスプローラーを使用して、スキーマのマネージド ストレージの場所を設定することもできます。 「スキーマの作成」を参照してください。
次のステップ
Unity カタログでは、マネージド テーブルとマネージド ボリュームを作成するときに、マネージド ストレージの場所が自動的に使用されます。 「マネージド テーブルの操作」と「Unity Catalog ボリュームとは」を参照してください。