Unity Catalog で管理されたストレージの場所を指定する

管理対象ストレージの場所は、管理対象テーブルおよび管理対象ボリュームのデータを格納するためのクラウド・オブジェクト・ストレージ内の場所を指定します。

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

アカウント管理者はメタストアを作成するときに、クラウドプロバイダーアカウントの AWS S3 または Cloudflare R2 バケット内のストレージの場所を関連付けて、管理されたストレージの場所として使用できます。 カタログ レベルおよびスキーマ レベルでの管理されたストレージの場所はオプションですが、Databricks では、論理的なデータ分離のためにカタログ レベルで管理されたストレージの場所を割り当てることをお勧めします。 データガバナンスとデータ分離ビルディング ブロックを参照してください。

重要

ワークスペースで Unity Catalog が自動的に有効になった場合、Unity Catalog メタストアは、メタストア レベルのマネージド ストレージの場所なしで作成されています。 管理ストレージの場所は、カタログ レベルまたはスキーマ レベルで割り当てる必要があります。 「 Unity Catalog の自動有効化 」および「データ ガバナンスとデータ分離の構成要素」を参照してください。

管理ストレージの場所とは

管理されたストレージの場所には、次のプロパティがあります。

  • マネージド テーブルとマネージド ボリュームは、データとメタデータ ファイルをマネージド ストレージの場所に格納します。

  • 管理対象ストレージの場所は、外部テーブルまたは外部ボリュームと重複することはできません。

次の表では、マネージド ストレージの場所を宣言し、Unity Catalog オブジェクトに関連付ける方法について説明します。

関連付けられた Unity Catalog オブジェクト

設定方法

外部ロケーションとの関係

メタストア

メタストアの作成時にアカウント管理者によって構成されます。

外部ロケーションと重なることはできません。

カタログ

カタログ作成時に MANAGED LOCATION キーワードを使用して指定します。

外部ロケーションに含まれている必要があります。

スキーマ

スキーマ作成時に MANAGED LOCATION キーワードを使用して指定します。

外部ロケーションに含まれている必要があります。

マネージド テーブルとマネージド ボリュームのデータとメタデータを格納するマネージド ストレージの場所は、次のルールを使用します。

  • 含まれているスキーマに管理された場所がある場合、データはスキーマで管理された場所に格納されます。

  • 含まれているスキーマに管理場所がなく、カタログに管理場所がある場合、データはカタログ管理場所に保管されます。

  • コンテナー スキーマとコンテナー カタログのどちらも管理対象の場所がない場合、データはメタストアの管理対象の場所に格納されます。

Unity Catalog は、ロケーションに対するガバナンスの重複を防ぎます。 「 Unity Catalog によって管理されるデータのパスのしくみ」を参照してください。

管理対象の格納場所、格納ルート、および格納場所

カタログまたはスキーマの MANAGED LOCATION を指定すると、指定された場所が Unity Catalog の ストレージ ルート として追跡されます。 すべてのマネージド エンティティが一意の場所を持つようにするために、Unity Catalog は、次の形式を使用して、指定された場所にハッシュされたサブディレクトリを追加します。

オブジェクト

パス

スキーマ

<storage-root>/__unitystorage/schemas/00000000-0000-0000-0000-000000000000

カタログ

<storage-root>/__unitystorage/catalogs/00000000-0000-0000-0000-000000000000

マネージド ストレージの場所の完全修飾パスは、Unity Catalog の ストレージの場所 として追跡されます。

複数のスキーマおよびカタログに対して同じ管理ストレージの場所を指定できます。

必要な権限

外部ロケーションに対する CREATE MANAGED STORAGE 権限を持つユーザーは、カタログまたはスキーマの作成時に管理対象ストレージの場所を構成できます。

メタストア レベルで設定された管理ストレージの場所は、メタストアの作成時にアカウント管理者が構成する必要があります。

カタログの管理ストレージの場所を設定する

次の例のように、カタログの作成時に MANAGED LOCATION キーワードを使用して、カタログの管理ストレージ・ロケーションを設定します。

CREATE CATALOG <catalog-name>
MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';

スキーマの管理ストレージの場所を設定する

次の例のように、スキーマの作成時に MANAGED LOCATION キーワードを使用して、スキーマの管理ストレージの場所を設定します。

CREATE SCHEMA <catalog>.<schema-name>
MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';

次のステップ

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