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