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

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

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

Databricks では、論理的なデータ分離のために、マネージド ストレージをカタログ レベルで割り当て、オプションとしてメタストア レベルとスキーマ レベルを使用することをお勧めします。

Unity Catalog に対して自動的に有効になっている新しいワークスペースは、メタストア レベルの管理されたストレージの場所なしで作成されます。 ただし、Delta Sharing を使用してノートブックを共有したり、Databricks パートナーとして個人のステージング場所を使用したりするなど、一部の機能にはメタストア レベルのストレージが必要です。 Unity Catalog データガバナンス、およびデータ分離ビルディングブロック の自動有効化 および Unity Catalogメタストアの作成 を参照してください。

管理された保管場所とは何ですか?

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

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

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

次の表では、管理されたストレージの場所が宣言され、Unity Catalog オブジェクトに関連付けられる方法について説明します。

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

設定方法

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

METASTORE

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

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

CATALOG

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

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

SCHEMA

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

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

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

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

  • 包含スキーマに管理された場所がなく、カタログに管理された場所がある場合、データはカタログの管理された場所に格納されます。

  • 包含スキーマと包含カタログのどちらも管理された場所を持たない場合、データはメタストアの管理された場所に格納されます。

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

管理されたストレージの場所、ストレージのルート、およびストレージの場所

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

オブジェクト

パス

SCHEMA

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

CATALOG

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

管理されたストレージの場所の完全修飾パスは、Unity Catalog の Storage Location として追跡されます。

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

必要な権限

外部ロケーションに対する 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 は、マネージドテーブルと管理ボリュームを作成するときに、管理ストレージの場所を自動的に使用します。 「マネージドテーブルの操作」および「Unity Catalogボリュームとは」を参照してください。