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

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

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

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

Unity カタログに対して有効になっている新しいワークスペースは、メタストア レベルのマネージド ストレージの場所なしで自動的に作成されます。 メタストア レベルのストレージが必要かどうかを判断するには、「 Unity カタログの自動有効化マネージド ストレージの場所階層および既存のメタストアへのマネージド ストレージの追加」を参照してください。

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

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

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

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

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

ワークスペースに対して Unity カタログが自動的に有効になると、Azure Databricksはマネージド ストレージの場所を持つワークスペース カタログを作成します。 すべてのワークスペース ユーザーは、ワークスペース カタログの default スキーマにマネージド テーブルとボリュームを作成できます。 ワークスペース カタログの詳細については、「 Unity カタログの自動有効化」を参照してください。

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

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

Unity Catalog では、場所のガバナンスの重複が防止されます。 Unity カタログ ボリュームのパスルールとアクセスを参照してください。

管理されたストレージ場所、ストレージのルート、ストレージ位置

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

オブジェクト 経路
[スキーマ] <storage-root>/__unitystorage/schemas/00000000-0000-0000-0000-000000000000
カタログ <storage-root>/__unitystorage/catalogs/00000000-0000-0000-0000-000000000000

マネージド ストレージの場所の完全修飾パスは、Unity Catalog のストレージの場所として追跡されます。

複数のスキーマとカタログ用に同じマネージド ストレージの場所を指定できます。

必要な特権

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

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

MANAGEおよびUSE CATALOG権限を持つユーザーとカタログ所有者は、管理された記憶域の場所を外部カタログに追加できます。

標準カタログまたはスキーマのマネージド ストレージの場所を変更するには、カタログまたはスキーマの所有者であるか、そのカタログまたはスキーマに対する MANAGE 特権を持ち、ターゲットの外部の場所に対する CREATE MANAGED STORAGE 特権を持っている必要があります。

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

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

標準カタログのマネージド ストレージの場所を設定する

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

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

URI スキームとパスを含む MANAGED LOCATION 文字列。 512 文字以下にする必要があります。

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

標準カタログのマネージド ストレージの場所を変更する

適用対象:はい Databricks SQL はい Databricks Runtime 18.1 以降

既存のカタログのマネージド ストレージの場所を変更するには、 ALTER CATALOG SET MANAGED LOCATIONを使用します。

マネージド ストレージの場所を変更すると、変更後に作成された新しいマネージド テーブルとボリュームにのみ影響します。 既存のマネージド オブジェクトは、新しい場所に移動されません。

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

URI スキームとパスを含む MANAGED LOCATION 文字列。 512 文字以下にする必要があります。

外部カタログの管理ストレージの場所を設定する

カタログ エクスプローラーを使用して、外部カタログの管理ストレージの場所を設定できます。

  1. メタストアにリンクされているワークスペースにログインします。
  2. [ データ] アイコンをクリックします。カタログ
  3. [カタログ] ウィンドウでカタログを見つけ、その名前をクリックします。
  4. [ ストレージの場所] で、[ ストレージの場所の追加] をクリックします。
  5. [ 外部の場所の選択] で、外部の場所を選択するか、新しい場所を作成してパスを指定します。
  6. [保存] をクリックします。

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

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

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

URI スキームとパスを含む MANAGED LOCATION 文字列。 512 文字以下にする必要があります。

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

スキーマのマネージド ストレージの場所を変更する

適用対象:はい Databricks SQL はい Databricks Runtime 18.1 以降

既存のスキーマのマネージド ストレージの場所を変更するには、 ALTER SCHEMA SET MANAGED LOCATIONを使用します。

マネージド ストレージの場所を変更すると、変更後に作成された新しいマネージド テーブルとボリュームにのみ影響します。 既存のマネージド オブジェクトは、新しい場所に移動されません。

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

URI スキームとパスを含む MANAGED LOCATION 文字列。 512 文字以下にする必要があります。

次のステップ

Unity カタログでは、マネージド テーブルとマネージド ボリュームを作成するときに、マネージド ストレージの場所が自動的に使用されます。 Delta Lake と Apache Iceberg のAzure DatabricksのUnity Catalog マネージド テーブルおよび Unity カタログ ボリュームとはを参照してください。