Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

STL_LOAD_ERRORS

显示所有 Amazon Redshift 加载错误的记录。

STL_LOAD_ERRORS 包含所有 Amazon Redshift 加载错误的历史记录。有关可能的加载错误和说明的全面列表,请参阅加载错误参考

在您查询 STL_LOAD_ERRORS 以了解有关错误的一般信息后,可查询 STL_LOADERROR_DETAIL 以获取其他详细信息,如发生解析错误的准确的数据行和列。

此表 对所有用户可见。超级用户可以查看所有行;普通用户只能看到自己的数据。有关更多信息,请参阅 系统表及视图中数据的可见性

表列

列名称 数据类型 描述
userid integer 生成该条目的用户 ID。
slice integer 发生错误的切片。
tbl integer 表 ID。
starttime timestamp 加载的开始时间(采用 UTC 表示)。
session integer 执行加载的会话的会话 ID。
query integer 查询 ID。查询列可用于连接其他系统表和视图。
filename character(256) 加载的输入文件的完整路径。
line_number bigint 加载文件中的错误所在的行号。对于 JSON 中的 COPY,这是存在错误的 JSON 对象的最后一行的行号。
colname character(127) 存在错误的字段。
type character(10) 字段的数据类型。
col_length character(10) 列长度(如果适用)。当数据类型具有限制长度时填充此字段。例如,对于数据类型为“character(3)”的列,此列将包含值“3”。
position integer 字段中的错误的位置。
raw_line character(1024) 包含错误的原始加载数据。加载数据中的多字节字符替换为句点。
raw_field_value char(1024) 字段“colname”的预解析值,可导致解析错误。
err_code integer 错误代码。
err_reason character(100) 有关错误的说明。

示例查询

以下查询将 STL_LOAD_ERRORS 联接到 STL_LOADERROR_DETAIL 以查看最近加载期间发生的错误的详细信息。

Copy
select d.query, substring(d.filename,14,20), d.line_number as line, substring(d.value,1,16) as value, substring(le.err_reason,1,48) as err_reason from stl_loaderror_detail d, stl_load_errors le where d.query = le.query and d.query = pg_last_copy_id(); query | substring | line | value | err_reason -------+-------------------+------+----------+---------------------------- 558| allusers_pipe.txt | 251 | 251 | String contains invalid or unsupported UTF8 code 558| allusers_pipe.txt | 251 | ZRU29FGR | String contains invalid or unsupported UTF8 code 558| allusers_pipe.txt | 251 | Kaitlin | String contains invalid or unsupported UTF8 code 558| allusers_pipe.txt | 251 | Walter | String contains invalid or unsupported UTF8 code

以下示例结合使用 STL_LOAD_ERRORS 和 STV_TBL_PERM 来创建新视图,然后使用该视图来确定在将数据加载到 EVENT 表中时发生的错误:

Copy
create view loadview as (select distinct tbl, trim(name) as table_name, query, starttime, trim(filename) as input, line_number, colname, err_code, trim(err_reason) as reason from stl_load_errors sl, stv_tbl_perm sp where sl.tbl = sp.id);

接下来,以下查询实际返回在加载 EVENT 表时发生的最后一个错误:

Copy
select table_name, query, line_number, colname, starttime, trim(reason) as error from loadview where table_name ='event' order by line_number limit 1;

查询返回 EVENT 表发生的最后一个加载错误。如果未发生任何加载错误,则查询返回零行。在此示例中,查询返回一个错误:

Copy
table_name | query | line_number | colname | error | starttime ------+-----+----+----+--------------------------------------------------------+---------------------- event | 309 | 0 | 5 | Error in Timestamp value or format [%Y-%m-%d %H:%M:%S] | 2014-04-22 15:12:44 (1 row)

本页内容: