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

ボリューム内のファイルを管理する

この記事では、さまざまなユーザー インターフェイス、ツール、ライブラリ、言語の Unity Catalog ボリューム でファイルを管理する例を示します。

Databricks では、クラウド オブジェクト ストレージ内のテーブル以外のデータへのすべてのアクセスを管理するためにボリュームを使用することを推奨しています。 テーブル以外のデータの例には、次のようなものがあります。

  • インジェスト用のデータ ファイル ( CSV、 JSON、 Parquetなど)。
  • データサイエンス、 ML、および AI ワークロード用のテキスト、画像、およびオーディオファイル。
  • 外部システムとの統合のために Databricks によって書き込まれた CSV または JSON アーティファクト。

ボリュームは、ライブラリ、initスクリプト、ビルドアーティファクトなどのファイルを保存するために使用できます。 ボリューム内のファイルおよびワークスペース・ファイルに関する推奨事項を参照してください。

カタログエクスプローラーUIを使用したボリューム内のファイルの操作

カタログエクスプローラーには、Unity Catalogボリュームに保存されているファイルのための一般的なファイル管理タスクのオプションが用意されています。

ボリューム内のファイルを操作するには、次の操作を行います。

  1. Databricks ワークスペースで、[カタログアイコン カタログ] をクリックします。
  2. 作業するボリュームを検索または参照し、それを選択します。

ボリュームの作成と管理の詳細については、「 ボリュームの作成と管理」を参照してください。

ボリュームへのファイルのアップロード

このボリュームにアップロード 」ボタンをクリックすると、ファイルをアップロードするためのダイアログが開きます。 「Unity Catalog ボリュームへのファイルのアップロード」を参照してください。

アップロードするファイルは5GBを超えないようにしてください。

ボリュームからのファイルのダウンロード

ボリュームからファイルをダウンロードするには、次の操作を行います。

  1. 1 つ以上のファイルを選択します。
  2. ダウンロード をクリックして、これらのファイルをダウンロードします。

一度にダウンロードできるファイルは 10 個までです。

ボリュームからファイルを削除する

ボリュームからファイルを削除するには、次の操作を行います。

  1. 1 つ以上のファイルを選択します。
  2. 削除 をクリックします。
  3. 削除 をクリックして、表示されるダイアログで確定します。

空白のディレクトリを作成する

ボリューム内に新しいディレクトリを作成するには、次の手順を実行します。

  1. ボリューム名の右側にある ケバブメニュー をクリックします。
  2. ディレクトリの作成 を選択します。
  3. ディレクトリ名を入力します。
  4. 作成 をクリックします。

ボリュームからディレクトリを削除する

ボリュームからディレクトリを削除するには、次の手順を実行します。

  1. 1 つ以上のディレクトリを選択します。
  2. 削除 をクリックします。
  3. 削除 をクリックして、表示されるダイアログで確定します。

ボリュームの UI ファイル管理タスク

ファイル名の横にあるケバブメニューケバブメニューをクリックして、次の操作を実行します。

  • パスをコピー
  • ファイルをダウンロード
  • ファイルを削除
  • テーブルを作成

ボリューム内のデータからテーブルを作成する

Databricks は、Unity Catalog ボリュームに格納されたファイル、ファイル、またはファイルのディレクトリから Unity Catalog マネージドテーブルを作成するための UI を提供します。

ターゲットスキーマに対するCREATE TABLE権限があり、実行中のSQLウェアハウスにアクセスできる必要があります。

  1. 1 つ以上のファイルまたはディレクトリを選択します。 ファイルのデータ レイアウトは同じである必要があります。

  2. テーブルの作成 をクリックします。 ボリュームからテーブルを作成 ダイアログが表示されます。

  3. 表示されたダイアログを使用して、データのプレビューを確認し、次の構成を完了します。

    • 新しいテーブルの作成 または 既存のテーブルを上書きする を選択します

    • ターゲットの カタログスキーマ を選択します。

    • [テーブル名] を指定します。

    • (オプション)デフォルトの列名とタイプを上書きするか、列を除外することを選択します。

注記

詳細属性 をクリックして、追加オプションを表示します。

  1. テーブルを作成 をクリックして、指定した属性でテーブルを作成します。 完了すると、カタログエクスプローラにテーブルの詳細が表示されます。

Databricks 上のボリューム内のファイルをプログラムで操作する

サポートされているすべての言語とワークスペースエディタから、次の形式を使用してボリューム内のファイルを読み書きできます。

/Volumes/catalog_name/schema_name/volume_name/path/to/files

ボリューム内のファイルの操作は、任意のクラウド・オブジェクト・ストレージ・ロケーション内のファイルと同じ方法で行います。 つまり、現在、クラウド URI、 DBFS マウント パス、または DBFSルート パスを使用してデータやファイルを操作するコードを管理している場合は、代わりにボリュームを使用するようにコードを更新できます。

注記

ボリュームは、表形式以外のデータにのみ使用されます。 Databricks では、 Unity Catalog テーブルを使用して登録する tabular data から、テーブル名を使用してデータを読み書きすることをお勧めします。

ボリューム内のデータの読み取りと書き込み

Apache Spark、Pandas、Spark SQL、およびその他の OSS ライブラリを使用して、ボリューム内のデータ ファイルの読み取りと書き込みを行うことができます。

次の例は、ボリュームに格納された CSV ファイルの読み取りを示しています。

Python
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")

display(df)

ボリューム内のファイルに対するユーティリティコマンド

Databricks には、ボリューム内のファイルを管理するための次のツールが用意されています。

これらのツールを使用してインターネットからファイルをダウンロードし、ファイルを解凍し、エフェメラルブロックストレージからボリュームにファイルを移動する例については、 インターネットからのデータのダウンロードを参照してください。

次の例に示すように、Python os モジュールなどのファイルユーティリティコマンドに OSS パッケージを使用することもできます。

Python
import os

os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')

外部ツールからボリューム内のファイルを管理する

Databricks には、ローカル環境または統合システムからボリューム内のファイルをプログラムで管理するための一連のツールが用意されています。

ボリューム内のファイルに対する SQL コマンド

Databricks では、ボリューム内のファイルを操作するための次の SQL キーワードがサポートされています。

注記

Databricks ノートブックまたはクエリ エディターでは、 LIST コマンドのみがサポートされます。

次の Databricks SQL コネクタとドライバーは、ボリューム内のファイルの管理をサポートしています。

Databricks CLI を使用したボリューム内のファイルの管理

databricks fsの subm コマンドを使用します。fsコマンド・グループを参照してください。

注記

Databricks CLI では、スキーム dbfs:/ がすべてのボリューム パスの前に配置する必要があります。 たとえば、 dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data.

SDKでボリューム内のファイルを管理する

次の SDK は、ボリューム内のファイルの管理をサポートしています。

REST API を使用したボリューム内のファイルの管理

Files API を使用して、ボリューム内のファイルを管理します。

ボリューム内のファイルの REST API の例

次の例では、 curl と Databricks REST API を使用して、ボリューム内のファイル管理タスクを実行します。

次の例では、指定したボリュームに my-folder という名前の空のフォルダーを作成します。

Bash
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

次の例では、ボリューム内の指定したパスに指定したデータを含む data.csv という名前のファイルを作成します。

Bash
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'

次の例では、指定したパス内のボリュームの内容を一覧表示します。 この例では、 jq を使用して、応答本文の JSON を読みやすくフォーマットします。

Bash
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

次の例では、指定したパスのボリューム内のフォルダーの内容を一覧表示します。 この例では、 jq を使用して、応答本文の JSON を読みやすくフォーマットします。

Bash
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

次の例では、ボリューム内の指定したパスにあるファイルの内容を出力します。

Bash
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

次の例では、指定したパス内のファイルをボリュームから削除します。

Bash
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

次の例では、指定したボリュームからフォルダを削除します。

Bash
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"