Unity Catalog で管理されたストレージの場所を指定する
管理対象ストレージの場所は、管理対象テーブルおよび管理対象ボリュームのデータを格納するためのクラウド・オブジェクト・ストレージ内の場所を指定します。
管理されたストレージの場所は、メタストア、カタログ、またはスキーマに関連付けることができます。 階層の下位レベルにある管理対象の格納場所は、管理対象テーブルまたは管理対象ボリュームの作成時に上位レベルで定義された格納場所をオーバーライドします。
メタストア レベルの管理ストレージはオプションであり、Unity Catalog に対して自動的に有効になる新しいワークスペースは、メタストア レベルの管理ストレージの場所なしで作成されます。 Databricks では、メタストア レベルとスキーマ レベルをオプションとして、論理データ分離のためにカタログ レベルで管理対象ストレージを割り当てることをお勧めします。 ただし、Delta Sharing を使用してノートブックを共有したり、Databricks パートナーとして個人のステージング場所を使用したりといった一部の機能には、メタストア レベルのストレージが必要です。 Unity Catalog「Unity カタログ、 データガバナンス、データ分離ビルディング ブロック 自動有効化 」と「 Unity Catalogメタストアの作成」を 参照してください。
管理ストレージの場所とは
管理されたストレージの場所には、次のプロパティがあります。
マネージド テーブルとマネージド ボリュームは、データとメタデータ ファイルをマネージド ストレージの場所に格納します。
管理対象ストレージの場所は、外部テーブルまたは外部ボリュームと重複することはできません。
次の表では、マネージド ストレージの場所を宣言し、Unity Catalog オブジェクトに関連付ける方法について説明します。
関連付けられた Unity Catalog オブジェクト |
設定方法 |
外部ロケーションとの関係 |
---|---|---|
メタストア |
メタストアの作成時にアカウント管理者によって構成されます。 |
外部ロケーションと重なることはできません。 |
カタログ |
カタログ作成時に |
外部ロケーションに含まれている必要があります。 |
スキーマ |
スキーマ作成時に |
外部ロケーションに含まれている必要があります。 |
マネージド テーブルとマネージド ボリュームのデータとメタデータを格納するマネージド ストレージの場所は、次のルールを使用します。
含まれているスキーマに管理された場所がある場合、データはスキーマで管理された場所に格納されます。
含まれているスキーマに管理場所がなく、カタログに管理場所がある場合、データはカタログ管理場所に保管されます。
コンテナー スキーマとコンテナー カタログのどちらも管理対象の場所がない場合、データはメタストアの管理対象の場所に格納されます。
Unity Catalog は、ロケーションに対するガバナンスの重複を防ぎます。 「 Unity Catalog によって管理されるデータのパスのしくみ」を参照してください。
管理対象の格納場所、格納ルート、および格納場所
カタログまたはスキーマの MANAGED LOCATION
を指定すると、指定された場所が Unity Catalog の ストレージ ルート として追跡されます。 すべてのマネージド エンティティが一意の場所を持つようにするために、Unity Catalog は、次の形式を使用して、指定された場所にハッシュされたサブディレクトリを追加します。
オブジェクト |
パス |
---|---|
スキーマ |
|
カタログ |
|
マネージド ストレージの場所の完全修飾パスは、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ボリュームとは何ですか?」を参照してください。