Unity Catalog のマネージド ストレージの場所を指定する

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

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

メタストアレベルのマネージド ストレージは必須ではなく、Unity Catalog に対して自動的に有効化される新しいワークスペースはメタストアレベルのマネージド ストレージの場所なしで作成されます。 Azure Databricks では、論理的データ分離を目的としてマネージド ストレージをカタログ レベルで割り当てて、メタストアレベルとスキーマレベルはオプションとすることが推奨されます。 ただし、メタストアレベルのストレージが必要になる機能もあります。たとえば、Delta Sharing を使用するノートブック共有や、Azure Databricks パートナーとしての個人用ステージングの場所の使用です。 「Unity Catalog の自動有効化」、「データ ガバナンスとデータ分離の構成要素」、「Unity Catalog メタストアを作成する」を参照してください。

マネージド ストレージの場所とは

マネージド ストレージの場所には、次のプロパティがあります。

  • マネージド テーブルとマネージド ボリュームでは、データ ファイルとメタデータ ファイルがマネージド ストレージの場所に格納されます。
  • マネージド ストレージの場所は、外部テーブルまたは外部ボリュームと重複できません。

次の表では、マネージド ストレージの場所を宣言し、Unity Catalog オブジェクトに関連付ける方法について説明します:

関連付けられた Unity Catalog オブジェクト 設定方法 外部の場所との関係
メタストア メタストアの作成時にアカウント管理者によって構成されます。 外部の場所と重複することはできません。
カタログCatalog MANAGED LOCATION キーワード (keyword) を使用してカタログの作成時に指定します。 外部の場所に含まれている必要があります。
[スキーマ] MANAGED LOCATION キーワード (keyword) を使用してスキーマの作成時に指定します。 外部の場所に含まれている必要があります。

マネージド テーブルとマネージド ボリュームのデータとメタデータを格納するマネージド ストレージの場所では、次の規則が使用されます:

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

Unity Catalog では、場所のガバナンスの重複が防止されます。 「Unity Catalog によって管理されるデータでのパスのしくみ」を参照してください。

マネージド ストレージの場所、ストレージ ルート、ストレージの場所

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

オブジェクト Path
[スキーマ] <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 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';

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

スキーマのマネージド ストレージの場所を設定する

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

CREATE CATALOG <catalog>.<schema-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';

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

次のステップ

マネージド ストレージの場所は、マネージド テーブルとマネージド ボリュームを作成するために使用されます。 「マネージド テーブルの操作」と「Unity Catalog ボリュームとは」を参照してください。