LIST¶
返回以下 Snowflake 存储功能之一的文件列表:
暂存区
Named internal
Named external
For a specified table
For the current user
LIST 可以缩写为 LS。
语法¶
语法会有所不同,具体取决于您是在某个暂存区列出文件还是在 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"'
)。小技巧
指定路径可为 LIST 命令提供范围,从而减少运行命令所需的潜在时间。
适用于 Git 存储库克隆¶
repositoryClone
指定 存储库克隆 的名称以及要列出文件的分支、标签或提交。
@[namespace.]repository_clone/path
列出 Git 存储库克隆中的文件时,
path
是必填项,必须以下列任一项开头:branches/branch_name
列出来自指定分支的文件。
tags/tag_name
List files from the specified tag.
commits/commit_hash
列出来自由提交哈希指定的提交的文件。
备注
If the repository clone name or path includes spaces or special characters, it must be enclosed in single quotes (for example,
'@"my repository"'
for a repository named"my repository"
).
可选参数¶
PATTERN = 'regex_pattern'
指定用于筛选输出文件的正则表达式模式。该命令列出指定
path
中的所有文件,并对找到的每个文件应用正则表达式模式。
使用说明¶
要使用依赖存储集成的外部暂存区运行此命令,您必须使用具有或继承存储集成 USAGE 权限的角色。
有关更多信息,请参阅 暂存区权限。
与已命名暂存区相比,表暂存区和用户暂存区不是第一类数据库对象;相反,它们是与表/用户关联的隐式暂存区。因此,它们本身没有可授予的权限:
您始终可以在用户暂存区列出文件(即不需要任何权限)。
要列出表暂存区中的文件,必须使用对表具有 OWNERSHIP 权限的角色。
PATTERN 支持 `Java 模式类<https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html>`_ 语法。
输出¶
该命令返回下表中的列。列值会有所不同,具体取决于您将 LIST 与暂存区还是与 Git 存储库克隆结合使用。
适用于暂存区¶
列 |
数据类型 |
描述 |
---|---|---|
name |
VARCHAR |
Name of the staged file |
大小 |
NUMBER |
Size of the file compressed (in bytes) |
md5 |
VARCHAR |
MD5 列存储暂存数据文件内容的 MD5 哈希值。 对于具有默认加密的内部暂存区 (SNOWFLAKE_FULL),在上传过程中,源文件使用随机密钥进行加密,其生成的 MD5 摘要始终与原始本地文件不同。 Amazon S3 暂存区通过 S3 eTag 字段报告该值,而该字段可能不是文件内容的 MD5 哈希值。 对于使用客户管理的加密密钥 (CMEK) 的 Google Cloud 暂存区,md5 预计为 NULL。 有关更多信息,请参阅 客户管理的加密密钥 (https://cloud.google.com/storage/docs/encryption/customer-managed-keys)。 |
sha1 |
VARCHAR |
未使用 |
last_modified |
VARCHAR |
Timestamp when the file was last updated in the stage |
适用于 Git 存储库克隆¶
列 |
数据类型 |
描述 |
---|---|---|
name |
VARCHAR |
带扩展名的完整文件路径 |
大小 |
NUMBER |
Size of the file compressed (in bytes) |
md5 |
VARCHAR |
未使用 |
sha1 |
VARCHAR |
通过对文件内容应用 SHA-1 哈希算法生成的唯一标识符。Git 使用它来跟踪和引用存储库中文件的确切版本,并可用于检测文件内容的变化。 |
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 @~;
适用于 Git 存储库克隆¶
有关示例,请参阅 查看存储库文件列表。