LIST

以下のいずれかのSnowflakeストレージ機能から、ファイルのリストを返します。

LIST は LSに短縮できます。

こちらもご参照ください。

REMOVE、 PUT、 COPY INTO <テーブル>、 COPY INTO <場所>、 GET

構文

構文は、ステージ内のファイルを一覧表示するか、Gitリポジトリのクローンをリストするかによって異なります。

ステージの場合

LIST { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]

条件:

internalStage ::=
    @[<namespace>.]<int_stage_name>[/<path>]
  | @[<namespace>.]%<table_name>[/<path>]
  | @~[/<path>]
externalStage ::=
  @[<namespace>.]<ext_stage_name>[/<path>]

Gitリポジトリのクローンの場合

LIST repositoryClone [ PATTERN = '<regex_pattern>' ]

条件:

repositoryClone ::=
  @[<namespace>.]<repository_clone>/<path>

必須パラメーター

ステージの場合

internalStage | externalStage

データファイルがステージングされる場所を指定します。

@[namespace.]int_stage_name[/path]

ファイルは指定された名前付き内部ステージにあります。

@[namespace.]ext_stage_name[/path]

ファイルは指定された名前付き外部ステージにあります。

@[namespace.]%table_name[/path]

ファイルは指定されたテーブルのステージにあります。

@~[/path]

ファイルは現在のユーザーのステージにあります。

条件:

  • namespace は、指定されたステージまたはテーブルが存在するデータベースまたはスキーマ、あるいはその両方です。セッション内でデータベースとスキーマが現在使用されている場合、 オプション です。それ以外の場合は必須です。

  • path は、一連のファイルへのアクセスを制限するクラウドストレージの場所にある、ファイルの大文字と小文字を区別するオプションのパスです(つまり、ファイルの名前は一般的な文字列で開始)。パスは、別のクラウドストレージサービスによって プレフィックス または フォルダー と呼ばれることもあります。

注釈

ステージ名またはパスにスペースまたは特殊文字が含まれている場合は、一重引用符で囲む必要があります(例: "my stage" という名前のステージの場合は '@"my stage"')。

Tip

パスを指定すると、 LIST コマンドのスコープが提供され、コマンドの実行に必要な時間が短縮される可能性があります。

Gitリポジトリのクローンの場合

repositoryClone

リポジトリのクローン の名前と、ファイルをリストするブランチ、タグ、コミットを指定します。

@[namespace.]repository_clone/path

Gitリポジトリのクローンからファイルをリストする場合、 path は必須であり、次のいずれかで始まる必要があります。

branches/branch_name

指定されたブランチからファイルをリストします。

tags/tag_name

指定されたタグからファイルをリストします。

commits/commit_hash

コミットハッシュで指定されたコミットからファイルをリストします。

注釈

リポジトリのクローン名またはパスにスペースまたは特殊文字が含まれている場合は、一重引用符で囲む必要があります(例: '@"my repository"' という名前のリポジトリの場合は "my repository")。

オプションのパラメーター

PATTERN = 'regex_pattern'

出力からファイルをフィルタリングするための正規表現パターンを指定します。このコマンドは、指定された path 内のすべてのファイルをリストし、見つかった各ファイルに正規表現パターンを適用します。

使用上の注意

  • ストレージ統合を使用する外部ステージでこのコマンドを実行するには、ストレージ統合の USAGE 権限を持つか継承するロールを使用する必要があります。

    詳細については、 ステージ権限 をご参照ください。

  • 名前付きステージとは対照的に、テーブルおよびユーザーステージはファーストクラスのデータベースオブジェクトではありません。むしろ、それらはテーブル/ユーザーに関連付けられた暗黙のステージです。そのため、それらには独自の付与可能な権限はありません。

    • ユーザーステージでいつでもファイルを一覧表示できます(つまり、権限は不要です)。

    • テーブルステージでファイルを一覧表示するには、テーブルに対する OWNERSHIP 権限を持つロールを使用する必要があります。

    • PATTERN は、 Javaパターンクラス 構文をサポートしています。

出力

このコマンドは、以下のテーブルの列を返します。列の値は、ステージで LIST を使用しているか、Gitリポジトリのクローンを使用しているかによって異なります。

ステージの場合

列

データ型

説明

名前

VARCHAR

ステージングされたファイルの名前

サイズ

NUMBER

圧縮されたファイルのサイズ(バイト単位)。

md5

VARCHAR

MD5 列には、ステージングされたデータファイルのコンテンツの MD5 ハッシュが格納されます。

デフォルトの暗号化(SNOWFLAKE_FULL)を使用した内部ステージでは、アップロード中にソースファイルはランダムなキーで暗号化され、その結果の MD5 ダイジェストは常に元のローカルファイルとは異なります。

Amazon S3ステージは、S3 eTagフィールドを介して値を報告しますが、これはファイルコンテンツの MD5 ハッシュではない場合があります。

顧客管理暗号化キー(CMEK)を使用するGoogle Cloudステージでは、md5は NULL になると予測されます。

詳細については、 顧客管理暗号化キー をご参照ください。

SHA1

VARCHAR

使用されていない

最終更新日

VARCHAR

ステージでファイルが最後に更新されたときのタイムスタンプ

Gitリポジトリのクローンの場合

列

データ型

説明

名前

VARCHAR

拡張子付きファイルの完全パス

サイズ

NUMBER

圧縮されたファイルのサイズ(バイト単位)。

md5

VARCHAR

使用されていない

SHA1

VARCHAR

ファイルの内容に SHA-1ハッシュアルゴリズムを適用することで生成された一意の識別子。これは、Gitがリポジトリ内のファイルの正確なバージョンを追跡して参照するために使用するものであり、ファイルの内容の変更を検出するために使用できます。

最終更新日

VARCHAR

リストされたファイルに関連するコミットのタイムスタンプ。これは、必ずしもファイルの内容が最後に変更された日時を示すものではありません。

例

ステージの場合

mytable テーブルのステージ内のすべてのファイルをリストします。

LIST @%mytable;

名前付きステージ mystage の path1 パスにあるすべてのファイルをリストします。

LIST @mystage/path1;

mytable テーブルのステージで、正規表現(つまり、文字列 data_0 を含むすべてのファイル名)に一致するファイルをリストします。

LIST @%mytable PATTERN='.*data_0.*';

名前付きステージ my_csv_stage の /analysis/ パスにある、正規表現(つまり、文字列 data_0 を含むすべてのファイル名)に一致するファイルをリストします。

LIST @my_csv_stage/analysis/ PATTERN='.*data_0.*';

コマンドの省略形を使用して、現在のユーザーのステージ内のすべてのファイルをリストします。

LS @~;

Gitリポジトリのクローンの場合

例については、 リポジトリファイルのリストを表示する をご参照ください。