LIST¶
返回在以下 Snowflake 暂存区之一中暂存(即从本地文件系统上传或从表中卸载)的文件列表:
已命名的内部暂存区。
已命名的外部暂存区。
指定表的暂存区。
当前用户的暂存区。
LIST 可以缩写为 LS。
语法¶
LIST { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]
其中:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]externalStage ::= @[<namespace>.]<ext_stage_name>[/<path>]
必填参数¶
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;
列出已命名暂存区 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 @~;