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

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

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

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

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

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

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

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

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

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

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

設定方法

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

METASTORE

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

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

標準カタログ

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

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

フォーリンカタログ

カタログエクスプローラを使用してカタログを作成した後に指定します。

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

SCHEMA

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

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

注記

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

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

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

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 権限を持つユーザーは、カタログまたはスキーマの作成時にマネージドストレージロケーションを構成できます。

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

MANAGE権限とUSE CATALOG権限を持つユーザー、およびカタログ所有者は、フォーリンカタログに管理されたストレージの場所を追加できます。

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

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

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

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

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

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

フォーリンカタログの管理保存場所の設定

フォーリンカタログの管理保管場所は、Catalog Explorer を使用して設定できます。

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

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

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

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

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

次のステップ

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