メインコンテンツまでスキップ

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

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

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

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

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

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

マネージドストレージロケーションには、次の特性があります。

  • マネージドテーブルとマネージドボリュームは、データとメタデータファイルをマネージドストレージロケーションに保存します。
  • マネージドストレージロケーションは、外部テーブルまたは外部ボリュームと重複することはできません。

次の表では、マネージドストレージロケーションが宣言され、Unity Catalog オブジェクトに関連付けられる方法について説明します。

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

設定方法

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

METASTORE

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

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

CATALOG

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

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

SCHEMA

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

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

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

  • データを格納するスキーマにマネージドロケーションがある場合、データはスキーマのマネージドロケーションに格納されます。
  • データを格納するスキーマにマネージドロケーションがなく、カタログにマネージドロケーションがある場合、データはカタログのマネージドロケーションに格納されます。
  • コンテナー スキーマとコンテナー カタログのどちらもマネージドロケーションがない場合、データはメタストアのマネージドロケーションに格納されます。

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

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

カタログまたはスキーマでMANAGED LOCATION を指定すると、指定されたロケーションは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 の ストレージロケーション として追跡されます。

複数のスキーマおよびカタログに対して同じマネージドストレージロケーションを指定できます。

必要な権限

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

アカウント管理者は、メタストア レベルでオプションのマネージドストレージロケーションを追加できます。

メタストアの管理されたストレージの場所を設定する

メタストアの管理ストレージの場所を設定するには、「 既存のメタストアに管理ストレージを追加する」を参照してください。

カタログの管理された保存場所の設定

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

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

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

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

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

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

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

次のステップ

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