ディレクトリテーブルのクエリ¶
このトピックでは、ディレクトリテーブルをクエリして、各ファイルのためにSnowflakeファイル URL などのメタデータとともに、ステージ上にあるすべてのファイルのリストを取得する方法について説明します。
ディレクトリテーブルをクエリするための構文。
SELECT * FROM DIRECTORY( @<stage_name> )
条件:
stage_name
有効化されたディレクトリテーブルを持つステージの名前。
ステートメントとしての SELECT およびステートメント内にある他の句の詳細については、Snowflake SQL コマンドリファレンスにある クエリ構文 をご参照ください。
出力¶
ディレクトリテーブルのクエリからの出力には、次の列が含まれる場合があります。
列
データ型
説明
RELATIVE_PATH
TEXT
ファイル URL を使用してアクセスするファイルへのパス。
SIZE
NUMBER
ファイルのサイズ(バイト単位)
LAST_MODIFIED
TIMESTAMP_LTZ
ステージでファイルが最後に更新されたときのタイムスタンプ。
MD5
HEX
ファイル用 MD5 チェックサム。
ETAG
HEX
ファイル用 ETag ヘッダー。
FILE_URL
TEXT
ファイルに対するSnowflakeファイル URL。
ファイル URL の形式は次のとおりです。
https://<account_identifier>/api/files/<db_name>.<schema_name>.<stage_name>/<relative_path>条件:
account_identifier
使用するステージのSnowflakeアカウントのホスト名。ホスト名は、アカウントロケーター(Snowflakeが提供)で始まり、Snowflakeドメイン(
snowflakecomputing.com
)で終わります。
account_locator.snowflakecomputing.com
詳細については、 アカウント識別子 をご参照ください。
注釈
Business Critical アカウントの場合は、アカウントでSnowflakeサービスへのプライベート接続が有効になっていなくても、
snowflakecomputing.com
(privatelink.snowflakecomputing.com
)の直前の URL にprivatelink
セグメントが追加されます。db_name
ファイルが配置されているステージを含むデータベースの名前。
schema_name
ファイルが配置されているステージを含むスキーマの名前。
stage_name
ファイルが配置されているステージの名前。
relative_path
ファイル URL を使用してアクセスするファイルへのパス。
使用上の注意¶
内部ステージからダウンロードしたファイルが破損している場合は、ステージに
ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE')
が設定されていることをステージの作成者で確認してください。
例¶
この例では、 mystage
という名前のステージのディレクトリテーブル内にあるすべてのメタデータ列を取得します。
SELECT * FROM DIRECTORY(@mystage);
この例では、100Kバイトより大きいサイズのファイルのために、ディレクトリテーブルから FILE_URL 列値を取得します。
SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE SIZE > 100000;
この例では、コンマ区切り値ファイルのために、ディレクトリテーブルから FILE_URL 列値を取得します。
SELECT FILE_URL FROM DIRECTORY(@mystage) WHERE RELATIVE_PATH LIKE '%.csv';
ディレクトリテーブルを使用した非構造化データのビューの作成¶
ディレクトリテーブルを他のSnowflakeテーブルと結合して、ファイル URLs とファイルに関するメタデータを組み合わせた非構造化データのビューを作成できます。
以下の図は、ディレクトリテーブルを有効にしたステージを、別のデータテーブルと合わせて使用して、ステージ上に非構造化ファイルの包括的なビューを作成する方法を示しています。
例: PDF ファイルおよびそのデータのビューの作成
次の例では、 my_pdf_stage
という名前のステージ上のディレクトリテーブルと report_metadata
という名前のテーブルを file_url
キーを使用して結合し、 reports_information
というビューを作成します。ステージには PDF レポートが含まれ、 report_metadata
テーブルには author
や publish_date
などの各 PDF レポートに関する構造化された情報が含まれます。結果として得られるビューは、非構造化 PDFs と、それに関連する構造化されたメタデータに関する情報を取得する方法を提供します。
CREATE VIEW reports_information AS
SELECT
file_url as report_link,
author,
publish_date,
approved_date,
geography,
num_of_pages
FROM directory(@my_pdf_stage) s
JOIN report_metadata m
ON s.file_url = m.file_url