次の方法で共有


Unity Catalog のマネージド ストレージの場所を指定する

マネージド ストレージの場所は、マネージド テーブルとマネージド ボリュームのデータを保存するためのクラウド オブジェクト ストレージ内の場所を指定します。

マネージド ストレージの場所をメタストア、カタログ、またはスキーマに関連付けることができます。 階層内の下位レベルのマネージド ストレージの場所は、マネージド テーブルまたはマネージド ボリュームの作成時に上位レベルで定義されたストレージの場所をオーバーライドします。

アカウント管理者は、メタストアを作成するとき、クラウド プロバイダー アカウントの Azure Data Lake Storage Gen2 コンテナーまたは Cloudflare R2 バケット内のストレージの場所を関連付けて、マネージド ストレージの場所として使うことができます。 カタログ レベルとスキーマ レベルのマネージド ストレージの場所は省略可能ですが、Databricks では論理データの分離のためにカタログ レベルでマネージド ストレージの場所を割り当てることをお勧めしています。 「データ ガバナンスとデータ分離の構成要素」を参照してください。

重要

Unity Catalog でワークスペースが自動的に有効になっている場合、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 CATALOG <catalog>.<schema-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';

次のステップ

マネージド ストレージの場所は、マネージド テーブルとマネージド ボリュームを作成するために使用されます。 「Unity Catalog でテーブルを作成する」および「ボリュームを作成して操作する」を参照してください。