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