メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

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

次の例では、STV_TBL_PERM と共に STL_LOAD_ERRORS を使用することにより、新しいビューを作成し、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 テーブルで発生した最新のロードエラーを返します。ロードエラーが発生していない場合、このクエリが返す行の数は 0 です。この例では、クエリは次のように 1 つのエラーを返します。

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)