STL_FILE_SCAN
返回通过使用 COPY 命令加载数据时 Amazon Redshift 读取的文件。
查询此视图可帮助排查数据加载错误。STL_FILE_SCAN 可对于精确查找并行数据加载中的问题特别有用,因为并行数据加载通常只需一个 COPY 命令即可加载许多文件。
STL_FILE_SCAN 对所有用户可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅 系统表和视图中的数据可见性。
注意
STL_FILE_SCAN 仅包含在主集群上运行的查询。它不包含在并发扩展集群上运行的查询。要访问在主集群和并发扩展集群上运行的查询,我们建议您使用 SYS 监控视图 SYS_LOAD_DETAIL。SYS 监控视图中的数据经过格式化处理,便于使用和理解。
表列
列名称 | 数据类型 | 描述 |
---|---|---|
userid | integer | 生成该条目的用户 ID。 |
query | integer | 查询 ID。查询列可用于连接其他系统表和视图。 |
slice | integer | 标识运行查询所在切片的标识符。 |
名称 | character(90) | 已加载的文件的完整路径和名称。 |
lines | bigint | 从文件中读取的行数。 |
bytes | bigint | 从文件中读取的字节数。 |
loadtime | bigint | 加载文件消耗的时间量(单位为微秒)。 |
curtime | 时间戳 | 表示 Amazon Redshift 开始处理文件的时间的时间戳。 |
is_partial | integer | 值,如果为真 (1) 表示在 COPY 操作期间输入文件被拆分为范围。如果此值为假 (0),则不会拆分输入文件。 |
start_offset | bigint | 值,如果在 COPY 操作期间拆分输入文件,则表示拆分的偏移值(以字节为单位)。如果文件未拆分,则此值为 0。 |
示例查询
以下查询检索花费了超过 1,000,000 微秒来让 Amazon Redshift 读取任何文件的名称和加载时间:
select trim(name)as name, loadtime from stl_file_scan where loadtime > 1000000;
此查询返回以下示例输出:
name | loadtime ---------------------------+---------- listings_pipe.txt | 9458354 allusers_pipe.txt | 2963761 allevents_pipe.txt | 1409135 tickit/listings_pipe.txt | 7071087 tickit/allevents_pipe.txt | 1237364 tickit/allusers_pipe.txt | 2535138 listings_pipe.txt | 6706370 allusers_pipe.txt | 3579461 allevents_pipe.txt | 1313195 tickit/allusers_pipe.txt | 3236060 tickit/listings_pipe.txt | 4980108 (11 rows)