ボリューム内のファイルとワークスペース ファイルに関する推奨事項

Azure Databricks にデータやファイルをアップロードまたは保存するときは、これらのファイルを格納するために Unity Catalog ボリュームまたはワークスペース ファイルのどちらを使うかを選択できます。 この記事では、これらの場所を使うための推奨事項と要件について説明します。 ボリュームとワークスペース ファイルについて詳しくは、「Unity Catalog ボリュームとは」と「ワークスペース ファイルとは」をご覧ください。

Databricks でデータ、ライブラリ、ビルド成果物を格納するには、Unity Catalog ボリュームを使うことをお勧めします。 ノートブック、SQL クエリ、コード ファイルはワークスペース ファイルとして格納します。 ワークスペース ファイルのディレクトリを Git フォルダーとして構成し、リモート Git リポジトリと同期できます。 「Databricks Git フォルダーの Git 統合」をご覧ください。 テスト シナリオに使われる小さなデータ ファイルも、ワークスペース ファイルとして格納できます。

次の表では、ファイルまたは機能のニーズの種類に応じた、ファイルに関する具体的な推奨事項を示します。

重要

Databricks ファイル システム (DBFS) はファイル ストレージとして利用することもできますが、すべてのワークスペース ユーザーが DBFS 内のファイルにアクセスできるので、それはお勧めしません。 DBFS に関する記事をご覧ください。

ファイルの種類

次の表では、ファイルの種類に関するストレージの推奨事項を示します。 Databricks では、この表に例として記載されているもの以外にも多くのファイル形式がサポートされています。

ファイルの種類 推奨事項
Databricks オブジェクト (ノートブックやクエリなど) ワークスペース ファイルとして保存します
構造化データ ファイル (Parquet ファイルや ORC ファイルなど) Unity Catalog ボリュームに格納します
半構造化データ ファイル (テキスト ファイル (.csv.txt) や JSON ファイル (.json) など) Unity Catalog ボリュームに格納します
非構造化データ ファイル (画像ファイル (.png.svg)、オーディオ ファイル (.mp3)、ドキュメント ファイル (.pdf.docx) など) Unity Catalog ボリュームに格納します
アドホックまたは初期のデータ探索に使われる生データ ファイル Unity Catalog ボリュームに格納します
運用データ (ログ ファイルなど) Unity Catalog ボリュームに格納します
大きなアーカイブ ファイル (ZIP ファイル (.zip) など) Unity Catalog ボリュームに格納します
ソース コード ファイル (Python ファイル (.py)、Java ファイル (.java)、Scala ファイル (.scala) など) 該当する場合はノートブックやクエリなどの他の関連オブジェクトと共に、ワークスペース ファイルとして格納します。

Databricks では、これらのファイルのバージョン管理と変更追跡のため、Git フォルダーでこれらのファイルを管理することをお勧めします。
ビルド成果物とライブラリ (Python wheel (.whl) や JAR ファイル (.jar) など) Unity Catalog ボリュームに格納します
構成ファイル 複数のワークスペースで必要な構成ファイルは Unity Catalog ボリュームに格納しますが、それが Git フォルダー内のプロジェクト ファイルである場合はワークスペース ファイルとして格納します。

機能の比較

次の表は、ワークスペース ファイルと Unity Catalog ボリュームの機能オファリングを比較したものです。

機能 ワークスペース ファイル Unity Catalog ボリューム
ファイル アクセス ワークスペース ファイルは、同じワークスペース内でのみ相互にアクセスできます。 ファイルは、ワークスペース間でグローバルにアクセスできます。
プログラムでアクセス ファイルは、次の方法でアクセスできます。

- Spark API
- FUSE
- dbutils
- REST API
- Databricks SDK
- Databricks CLI
ファイルは、次の方法でアクセスできます。

- Spark API
- FUSE
- dbutils
- REST API
- Databricks SDK
- Databricks SQL コネクタ
- Databricks CLI
- Databricks Terraform プロバイダー
Databricks アセット バンドル 既定では、ライブラリと Databricks オブジェクト (ノートブックやクエリなど) を含むバンドル内のすべてのファイルは、ワークスペース ファイルとして安全にデプロイされます。 アクセス許可は、バンドル構成で定義されます。 ライブラリがワークスペース ファイルのサイズ制限を超える場合には、ボリューム内にすでに存在するライブラリを含むようにバンドルをカスタマイズできます。 「Databricks アセット バンドルのライブラリ依存関係」を参照してください。
ファイルのアクセス許可レベル アクセス許可は、ファイルが Git フォルダー内にある場合は Git フォルダー レベルであり、それ以外の場合はファイル レベルで設定されます。 アクセス許可はボリューム レベルです。
アクセス許可の管理 アクセス許可は、ワークスペースの ACL によって管理され、含んでいるワークスペースに制限されます。 メタデータとアクセス許可は、Unity Catalog によって管理されます。 これらのアクセス許可は、カタログにアクセスできるすべてのワークスペースに適用されます。
外部ストレージのマウント 外部ストレージのマウントはサポートしていません 外部ボリュームを作成して、外部ストレージの既存のデータセットを参照できます。 「Unity Catalog ボリュームとは」を参照してください。
UDF のサポート サポートされていません UDF からの書き込みは、ボリューム FUSE を使ってサポートされます
ファイル サイズ ノートブックと共に必要なソース コード ファイル (.py.md.yml) など、500 MB 未満の小さいファイルを格納します。 クラウド サービス プロバイダーが定める制限の下で、非常に大きなデータ ファイルを格納します。
アップロードとダウンロード 最大 10 MB のアップロードとダウンロードをサポートします。 最大 5 GB のアップロードとダウンロードをサポートします。
テーブル作成のサポート ワークスペース ファイルを場所として使ってテーブルを作成することはできません。 COPY INTO オートローダー、または「Databricks レイクハウスにデータを取り込む」で説明されている他のオプションを実行して、ボリューム内のファイルからテーブルを作成できます。
ディレクトリの構造とファイル パス ファイルは入れ子になったディレクトリとして編成され、それぞれに独自のアクセス許可モデルがあります。

- ワークスペース内のユーザーとサービス プリンシパルごとに 1 つのユーザー ホーム ディレクトリ
- Git フォルダー
- 共有
ファイルは、ボリューム内の入れ子になったディレクトリとして編成されます

Unity Catalog のデータにアクセスできる方法」をご覧ください。
ファイルの履歴 ワークスペース内の Git フォルダーを使って、ファイルの変更を追跡します。 監査ログを使用できます。