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 を指定すると、指定されたロケーションは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 キーワードを使用します。

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ボリュームとはを参照してください。