ストレージを探索してデータ ファイルを見つける
この記事では、Unity Catalog ボリュームで管理されているディレクトリとデータ ファイルの検出と探索に重点を置いています。これには、カタログ エクスプローラーでボリュームを探索するための UI ベースの手順が含まれます。 この記事では、ボリューム パスとクラウド URI を使用してクラウド オブジェクト ストレージ内のデータをプログラムで探索する例も示します。
Databricks では、クラウド オブジェクト ストレージ内のデータへのアクセスの管理にボリュームを使用することをお勧めします。 クラウド オブジェクト ストレージ内のデータへの接続の詳細については、「データ ソースへの接続」を参照してください。
すべての場所のファイルを操作する方法の完全なチュートリアルについては、「Azure Databricks 上のファイルを操作する」を参照してください。
重要
ワークスペース UI でファイルを検索すると、ワークスペース ファイルとして保存されているデータ ファイルが検出される場合があります。 Databricks では、主にコード (スクリプトやライブラリなど)、init スクリプト、または構成ファイルにワークスペース ファイルを使用することをお勧めします。 ワークスペース ファイルとしての格納データは、開発中のテストや QA などのタスクに使用できる小さいデータセットに限定するのが理想的です。 「ワークスペース ファイルとは」を参照してください。
ボリュームとレガシ クラウド オブジェクトの構成
ボリュームを使用してクラウド オブジェクト ストレージ内のデータへのアクセスを管理する場合は、ボリューム パスのみを使用してデータにアクセスできます。これらのパスは、すべての Unity Catalog 対応コンピューティングで使用できます。 ボリュームを使用して Unity Catalog テーブルをバックアップするデータ ファイルを登録することはできません。 Databricks では、ファイル パスの代わりにテーブル名を使用して、Unity Catalog テーブルとして登録されている構造化データを操作することをお勧めします。 「Unity Catalog によって管理されるデータでのパスのしくみ」を参照してください。
クラウド オブジェクト ストレージ内のデータへのアクセスを構成するために従来の方法を使用する場合、Azure Databricks はレガシ テーブル ACL のアクセス許可に戻ります。 共有アクセス モードで構成された SQL ウェアハウスまたはコンピューティングからクラウド URI を使用してデータにアクセスすることを希望するユーザーには、ANY FILE
アクセス許可が必要です。 「Hive メタストア テーブルのアクセス制御 (レガシ)」を参照してください。
Azure Databricks には、クラウド オブジェクト ストレージ内のファイルを一覧表示するための API がいくつか用意されています。 この記事のほとんどの例では、ボリュームの使用に焦点を当てています。 ボリュームなしで構成されたオブジェクト ストレージ上のデータを操作する例については、「URI を使用してファイルを一覧表示する」を参照してください。
ボリュームを調べる
カタログ エクスプローラーを使用してボリューム内のデータを探索し、ボリュームの詳細を確認できます。 表示できるのは読み取りアクセス許可を持つボリュームのみであるため、この方法で検出されたすべてのデータに対してクエリを実行できます。
SQL を使用して、ボリュームとそのメタデータを探索できます。 ボリューム内のファイルを一覧表示するには、SQL、%fs
マジック コマンド、または Databricks ユーティリティを使用できます。 ボリューム内のデータを操作する場合は、Unity Catalog によって提供されるパスを使用します。その形式は常に次のとおりです。
/Volumes/catalog_name/schema_name/volume_name/path/to/data
ボリュームを表示する
SQL
特定のスキーマ内のボリュームの一覧を表示するには、次のコマンドを実行します。
SHOW VOLUMES IN catalog_name.schema_name;
「SHOW VOLUMES」を参照してください。
カタログ エクスプローラー
カタログ エクスプローラーで特定のスキーマのボリュームを表示するには、次のようにします。
- [カタログ] アイコンを選択します。
- カタログを選択します。
- スキーマを選択します。
- [ボリューム] をクリックして、スキーマ内のすべてのボリュームを展開します。
Note
スキーマに登録されているボリュームがない場合、[ボリューム ] オプションは表示されません。 代わりに、使用可能なテーブルの一覧が表示されます。
ボリュームの詳細を表示する
SQL
次のコマンドを実行すると、テーブルの定義が表示されます。
DESCRIBE VOLUME volume_name
「DESCRIBE VOLUME」を参照してください。
カタログ エクスプローラー
ボリュームの詳細を確認するには、ボリューム名をクリックし、[詳細] タブを選択します。
ボリューム内のファイルを表示する
SQL
ボリューム内のファイルを一覧表示するには、次のコマンドを実行します。
LIST '/Volumes/catalog_name/schema_name/volume_name/'
カタログ エクスプローラー
ボリュームの詳細を確認するには、ボリューム名をクリックし、[詳細] タブを選択します。
%fs
ボリューム内のファイルを一覧表示するには、次のコマンドを実行します。
%fs ls /Volumes/catalog_name/schema_name/volume_name/
Databricks ユーティリティ
ボリューム内のファイルを一覧表示するには、次のコマンドを実行します。
dbutils.fs.ls("/Volumes/catalog_name/schema_name/volume_name/")
URI を使用してファイルを一覧表示する
URI を使用して、ボリューム以外の方法で構成されたクラウド オブジェクト ストレージに対してクエリを実行できます。 クラウドの場所にアクセスするには、特権を持つコンピューティングに接続されている必要があります。 ANY FILE
アクセス許可は、共有アクセス モードで構成された SQL ウェアハウスとコンピューティングで必要です。
Note
ボリュームが構成されているオブジェクト ストレージへの URI アクセスはサポートされていません。 カタログ エクスプローラーを使用して、ボリュームが構成されていないオブジェクト ストレージの内容を確認することはできません。
以下の例には、Azure Data Lake Storage Gen2、S3、GCS を使用する格納データの URI の例が含まれます。
SQL
クラウド オブジェクト ストレージ内のファイルを一覧表示するには、次のコマンドを実行します。
-- ADLS 2
LIST 'abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/data'
-- S3
LIST 's3://bucket-name/path/to/data'
-- GCS
LIST 'gs://bucket-name/path/to/data'
%fs
クラウド オブジェクト ストレージ内のファイルを一覧表示するには、次のコマンドを実行します。
# ADLS 2
%fs ls abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/data
# S3
%fs ls s3://bucket-name/path/to/data
# GCS
%fs ls gs://bucket-name/path/to/data
Databricks ユーティリティ
クラウド オブジェクト ストレージ内のファイルを一覧表示するには、次のコマンドを実行します。
# ADLS 2
dbutils.fs.ls("abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/data")
# S3
dbutils.fs.ls("s3://bucket-name/path/to/data")
# GCS
dbutils.fs.ls("bucket-name/path/to/data")