Unity カタログ ボリュームのパスルールとアクセス

このページでは、Unity カタログでのパスの重複に関する制限事項、Unity カタログ オブジェクト内のデータ ファイルのパスベースのアクセス パターンの詳細、および Unity カタログがテーブルとボリュームのパスを管理する方法について説明します。

Unity カタログでのパスの重複の制限

Unity Catalog では、データのマネージド ディレクトリが重複しないようにすることで、データ ガバナンスが適用されます。 Unity カタログでは、次の規則が適用されます。

  • 外部の場所は、他の外部の場所と重複することはできません。
  • テーブルとボリュームは、外部の場所またはメタストア ルートの場所にデータ ファイルを格納します。
  • ボリュームは他のボリュームと重複できません。
  • テーブルは他のテーブルと重複できません。
  • テーブルとボリュームは互いに重複することはできません。
  • マネージド ストレージの場所は、互いに重複することはできません。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。
  • 外部ボリュームは、マネージド ストレージの場所と重複することはできません。
  • 外部テーブルは、マネージド ストレージの場所と重複できません。

これらのルールは、Unity カタログに次の制限があることを意味します。

  • 別の外部の場所内に新たな外部の場所を定義することはできません。
  • 別のボリューム内でボリュームを定義することはできません。
  • 別のテーブル内にテーブルを定義することはできません。
  • ボリューム内のデータ ファイルまたはディレクトリにテーブルを定義することはできません。
  • テーブル内のディレクトリにボリュームを定義することはできません。

注

パスベースのアクセスを使用して、Delta Lake を含むボリュームからデータ ファイルを書き込んだり読み取ったりすることができます。 これらのデータ ファイルをテーブルとして Unity カタログ メタストアに登録することはできません。

テーブルとボリュームの完全に管理されたパス

マネージド テーブルまたはマネージド ボリュームを作成すると、Unity カタログは、含まれるスキーマに関連付けられている Unity カタログで構成されたストレージの場所に新しいディレクトリを作成します。 このディレクトリの名前は、既に存在する他のディレクトリとの競合の可能性を回避するためにランダムに生成されます。 この動作は、Hive メタストアがマネージド テーブルを作成する方法とは異なります。

Unity カタログのマネージド テーブルへのパスベースのアクセスはサポートされていません。 テーブル名を使用して Unity カタログのマネージド テーブルを操作し、ボリューム パスを使用して Unity カタログのマネージド ボリュームを常に操作します。

テーブルとボリュームの外部ロケーションのパス

外部テーブルまたはボリュームを作成するときは、Unity カタログによって管理される外部の場所内のパスを指定します。

Von Bedeutung

パスの競合を回避するために、Databricks では、外部の場所のルートではなく、サブディレクトリに外部テーブルとボリュームを作成することをお勧めします。

使いやすいように、テーブル名を使用して Unity カタログの外部テーブルを操作し、ボリューム パスを使用して外部ボリュームを操作します。 十分な特権を持つユーザーは、完全なクラウド ストレージ パスを使用してデータに直接アクセスすることもできます。

これらのオブジェクトのクラウド URI を介したデータへのアクセスは、外部の場所自体の特権をオーバーライドする Unity カタログ特権によって完全に管理されます。 Unity カタログと Unity カタログの権限リファレンスのパスの重複制限を参照してください。

Unity カタログのデータにアクセスする

Unity カタログ オブジェクトは、オブジェクト識別子、ボリューム パス、またはクラウド URI を介してデータへのアクセスを提供します。 これらの値を使用して、ボリュームとテーブルに関連付けられているデータにアクセスできます。

Unity カタログ テーブルには、次のパターンの 3 層識別子を使用してアクセスします。

<catalog_name>.<schema_name>.<table_name>

Unity カタログのボリューム ファイル パス

ボリュームは、次のパターンでデータ ファイルにアクセスするためのファイル パスを提供します。

/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>

クラウド URI では、次の例のように、ドライバー、ストレージ コンテナー識別子、およびターゲット ファイルへの完全なパスをユーザーに提供する必要があります。

abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>

次の表は、Unity カタログ オブジェクトで許可されるアクセス方法を示しています。

オブジェクト オブジェクト識別子 ファイルパス クラウド URI
外部の場所 いいえ いいえ はい
マネージド テーブル はい いいえ いいえ
外部テーブル はい いいえ はい
マネージド ボリューム いいえ はい いいえ
外部ボリューム いいえ はい はい

注

Unity カタログ ボリュームは、管理コマンド ( CREATE VOLUME や DROP VOLUMEなど) に次のパターンで 3 層オブジェクト識別子を使用します。

<catalog_name>.<schema_name>.<volume_name>

ボリューム内のファイルを実際に操作するには、パスベースのアクセスを使用する必要があります。