本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
STL_LOAD_ERRORS
显示所有 Amazon Redshift 加载错误的记录。
STL_LOAD_ERRORS 包含所有 Amazon Redshift 加载错误的历史记录。有关可能的加载错误和说明的全面列表,请参阅加载错误参考。
在您查询 STL_LOAD_ERRORS 以了解有关错误的一般信息后,可查询 STL_LOADERROR_DETAIL 以获取其他详细信息,如发生解析错误的准确的数据行和列。
此视图 对所有用户可见。超级用户可以查看所有行;普通用户只能看到自己的数据。有关更多信息,请参阅 Visibility of data in system tables and views。
表列
列名称 | 数据类型 | 描述 |
---|---|---|
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 以查看最近加载期间发生的错误的详细信息。
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 表中时发生的错误:
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 表时发生的最后一个错误:
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 表发生的最后一个加载错误。如果未发生任何加载错误,则查询返回零行。在此示例中,查询返回一个错误:
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)