ストレージの探索とデータファイルの検索

この記事では、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を参照してください。

特定のスキーマのボリュームをカタログエクスプローラーで表示するには、以下の操作を行います。

  1. [カタログ アイコンカタログ] アイコンを選択します。

  2. カタログを選択します。

  3. スキーマを選択します。

  4. [ Volumes ] をクリックして、スキーマ内のすべてのボリュームを展開します。

注:

スキーマにボリュームが登録されていない場合、「 ボリューム」 オプションは表示されません。 代わりに、使用可能なテーブルの一覧が表示されます。

ボリュームの詳細を見る

次のコマンドを実行して、ボリュームを記述します。

DESCRIBE VOLUME volume_name

DESCRIBE VOLUMEを参照してください。

ボリューム名をクリックし、[ 詳細 ]タブを選択してボリュームの詳細を確認します。

ボリューム内のファイルを表示する

次のコマンドを実行して、ボリューム内のファイルを一覧表示します。

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")