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