LIST

返回在以下 Snowflake 暂存区之一中暂存(即从本地文件系统上传或从表中卸载)的文件列表:

  • 已命名的内部暂存区。

  • 已命名的外部暂存区。

  • 指定表的暂存区。

  • 当前用户的暂存区。

LIST 可以缩写为 LS。

另请参阅:

REMOVE

PUTCOPY INTO <table>

COPY INTO <location>GET

语法

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

其中:

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

必填参数

internalStage | externalStage

指定暂存数据文件的位置:

@[namespace.]int_stage_name[/path]

文件位于指定的已命名内部暂存区。

@[namespace.]ext_stage_name[/path]

文件位于指定的命名外部暂存区。

@[namespace.]%table_name[/path]

文件位于指定表的暂存区中。

@~[/path]

文件位于当前用户的暂存区。

其中:

  • namespace 是已命名暂存区或表所在的数据库和/或架构。如果数据库和架构当前正在用户会话中使用,则此参数为 选填;否则,为必填。

  • path 是云存储位置中文件的可选路径(即文件的名称以公共字符串开头),且区分大小写,用于限制对一组文件的访问。不同的云存储服务也可以将路径称为 前缀文件夹

备注

如果暂存区名称包含空格或特殊字符,则必须将其放在单引号内(例如,对于命名为 "my stage" 的暂存区,格式为 '@"my stage"')。

小技巧

指定路径可为 LIST 命令提供范围,从而减少运行命令所需的潜在时间。

可选参数

PATTERN = 'regex_pattern'

指定用于筛选输出文件的正则表达式模式。该命令列出指定 path 中的所有文件,并对找到的每个文件应用正则表达式模式。

使用说明

  • 与已命名暂存区相比,表暂存区和用户暂存区不是第一类数据库对象;相反,它们是与表/用户关联的隐式暂存区。因此,它们本身没有可授予的权限:

    • 您始终可以在用户暂存区列出文件(即不需要任何权限)。

    • 要列出表暂存区中的文件,必须使用对表具有 OWNERSHIP 权限的角色。

输出

该命令返回以下列:

数据类型

描述

name

VARCHAR

暂存文件的名称。

大小

NUMBER

压缩文件的大小(以字节为单位)。

md5

VARCHAR

MD5 列存储暂存数据文件内容的 MD5 哈希值。对于具有默认加密的内部暂存区 (SNOWFLAKE_FULL),在上传过程中,源文件使用随机密钥进行加密,其生成的 MD5 摘要始终与原始本地文件不同。Amazon S3 暂存区通过 S3 eTag 字段报告该值,这可能不是 MD5 文件内容的哈希值。

last_modified

VARCHAR

上次在暂存区中更新文件的时间戳。

示例

列出 mytable 表暂存区中的所有文件:

LIST @%mytable;
Copy

列出已命名暂存区 mystage 路径 path1 中的所有文件:

LIST @mystage/path1;
Copy

列出在 mytable 表的暂存区中与正则表达式匹配的文件(即包含字符串 data_0 的所有文件名):

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

列出已命名暂存区 my_csv_stage 路径 /analysis/ 中与正则表达式匹配的文件(即包含字符串 data_0 的所有文件名):

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

使用命令的缩写形式列出当前用户在暂存区中的所有文件:

LS @~;
Copy
语言: 中文