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

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

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

メタストア レベルの管理ストレージはオプションであり、Unity Catalog に対して自動的に有効になる新しいワークスペースは、メタストア レベルの管理ストレージの場所なしで作成されます。 Databricks では、メタストア レベルとスキーマ レベルをオプションとして、論理データ分離のためにカタログ レベルで管理対象ストレージを割り当てることをお勧めします。 ただし、Delta Sharing を使用してノートブックを共有したり、Databricks パートナーとして個人のステージング場所を使用したりといった一部の機能には、メタストア レベルのストレージが必要です。 Unity Catalog「Unity カタログ、 データガバナンス、データ分離ビルディング ブロック 自動有効化 」と「 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>';

「カタログエクスプローラ」(Catalog Explorer) を使用して、カタログの管理ストレージロケーションを設定することもできます。 「カタログの作成」を参照してください。

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

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

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

「カタログエクスプローラ」(Catalog Explorer) を使用して、スキーマの管理ストレージの場所を設定することもできます。 「 スキーマの作成」を参照してください。

次のステップ

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