Unity Catalog ボリュームとは
ボリュームは、表形式以外のデータセットに対するガバナンスを可能にする Unity Catalog オブジェクトです。 ボリュームは、クラウド・オブジェクト・ストレージ・ロケーション内のストレージの論理ボリュームを表します。 ボリュームは、ファイルへのアクセス、保存、管理、および整理の機能を提供します。
テーブルは表形式のデータセットに対するガバナンスを提供しますが、ボリュームは非表形式のデータセットに対するガバナンスを追加します。 ボリュームを使用して、構造化データ、半構造化データ、非構造化データなど、任意の形式のファイルを格納し、アクセスすることができます。
Databricks では、すべての非表形式データへのアクセスを管理するためにボリュームを使用することを推奨しています。 テーブルと同様に、ボリュームはマネージドまたは外部にすることができます。
ボリュームをテーブルのロケーションとして使用することはできません。 ボリュームは、パスベースのデータアクセスのみを目的としています。 Unity Catalog で表形式データを操作する場合は、テーブルを使用します。
次の記事では、ボリュームの操作に関する詳細情報を提供します。
ボリュームを操作する場合は、カタログ エクスプローラーなどのDatabricksのUI を使用していない限り、SQLウェアハウスあるいはDatabricks Runtime LTS13.3 以上を実行しているクラスターを使用する必要があります。
管理ボリュームとは何ですか?
管理ボリューム は、含まれているスキーマの管理されたストレージの場所内に作成された、Unity Catalog によって管理されるストレージボリュームです。「Unity Catalog で管理されたストレージの場所を指定する」を参照してください。
マネージドボリュームを使用すると、外部ロケーションやストレージ資格情報のオーバーヘッドなしで、ファイルを操作するためのマネージドストレージを作成できます。 マネージドボリュームの作成時にロケーションを指定する必要はなく、マネージドボリューム内のデータに対するすべてのファイルアクセスは、Unity Catalog によって管理されるパスを介して行われます。
外部ボリュームとは何ですか?
外部ボリュームは、 Unity Catalog管理のストレージ資格情報を使用して外部ロケーション内のディレクトリに対して登録された、Unity Catalog管理のストレージ ボリュームです。
Unity Catalog では、外部ボリューム内のファイルのライフサイクルとレイアウトは管理されません。 外部ボリュームをドロップしても、Unity Catalog は基になるデータを削除しません。
ボリューム内のファイルにアクセスするためにどのパスが使用されますか?
ボリュームは、Unity Catalog の 3 レベル名前空間 (catalog.schema.volume
の 3 番目のレベルにあります。
ボリュームへのアクセスパスは、Apache Spark、SQL、Python、またはその他の言語やライブラリのいずれを使用する場合でも同じです。 これは、Databricks ワークスペースにバインドされたオブジェクト ストレージ内のファイルに対する従来のアクセス パターンとは異なります。
ボリューム内のファイルにアクセスするためのパスは、次の形式を使用します。
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
Databricks では、Apache Spark を使用する場合、オプションの dbfs:/
スキームもサポートされているため、次のパスも機能します。
dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
パス内のシーケンス /<catalog>/<schema>/<volume>
は、ファイルに関連付けられている 3 つの Unity Catalog オブジェクト名に対応します。 これらのパス要素は読み取り専用であり、ユーザーが直接書き込むことはできないため、ファイルシステム操作を使用してこれらのディレクトリを作成または削除することはできません。 これらは自動的に管理され、対応する Unity Catalog エンティティと同期されます。
また、クラウドストレージのURIを使用して、外部ボリューム内のデータにアクセスすることもできます。
ボリューム用のリザーブドパス
ボリュームでは、ボリュームへのアクセスに使用される次の予約済みパスが導入されています。
dbfs:/Volumes
/Volumes
パスは、 Apache Spark APIsおよび dbutils
からのこれらのパスの潜在的なタイポのために予約されており、dbfs:/
が先行するかどうかに関係なく、/volumes
、/Volume
、/volume
が含まれます。 パス /dbfs/Volumes
も予約されていますが、ボリュームへのアクセスには使用できません。
ボリュームは、Databricks Runtime 13.3 LTS 以降でのみサポートされます。 Databricks Runtime 12.2 LTS 以前では、/Volumes
パスに対する操作は成功する可能性がありますが、コンピュート クラスターにアタッチされたエフェメラル ストレージ ディスクにのみデータを書き込むことができます。これは、期待どおりにデータを Unity Catalog ボリュームに永続化するのではなく、コンピュート クラスターにアタッチされています。
DBFSルートの予約済みパスに既存のデータが保存されている場合は、サポート チケットを提出して、このデータに一時的にアクセスし、別の場所に移動できます。
制限
Unity CatalogUnity Catalogボリュームを操作するには、 対応コンピュートを使用する必要があります。ボリュームは、すべてのワークロードをサポートしているわけではありません。
次の表は、Databricks Runtime のバージョンに基づく Unity Catalog のボリューム制限の概要を示しています。
Databricks Runtimeのバージョン | 制限事項 |
---|---|
14.3 LTS以上 |
|
14.2 以下 |
|
サポートされているすべての Databricks Runtime バージョン |
|