STL_LOAD_ERRORS - Amazon Redshift

STL_LOAD_ERRORS

すべての Amazon Redshift ロードエラーのレコードを表示します。

STL_LOAD_ERRORS には、Amazon Redshift ロードエラーの履歴が含まれます。発生する可能性があるロードエラーと説明の包括的なリストについては、「ロードエラー参照」を参照してください。

STL_LOAD_ERRORS をクエリしてエラーに関する一般的な情報を得た後で、解析エラーが発生したデータの正確な行と列などの追加的な詳細を得るために STL_LOADERROR_DETAIL をクエリします。

STL_LOAD_ERRORS はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

注記

STL_LOAD_ERRORS には、メインクラスターで実行されるクエリのみが含まれます。同時実行スケーリングクラスターで実行されるクエリは含まれていません。メインクラスターおよび同時実行スケーリングクラスターの両方で実行されるクエリにアクセスするには、SYS モニタリングビュー SYS_LOAD_ERROR_DETAIL を使用することをお勧めします。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。

テーブルの列

列名 データ型 説明
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) エラーの説明。
is_partial integer COPY オペレーションの実行中に入力されたファイルが、いくつかの範囲で分割されていることを (true (1) で) 示す値。この値が false (0) の場合、入力ファイルは分割されていません。
start_offset bigint COPY オペレーション中に入力されたファイルが分割されていた場合、分割のオフセット値をバイト単位で示す値。ファイル内で不明な行番号は、「-1」として表示されます。ファイルが分割されていない場合、この値は 0 になります。
copy_job_id bigint コピージョブ識別子。0 はジョブ ID がないことを示します。

サンプルクエリ

次のクエリは、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

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

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)

並列処理を容易にするために、COPY コマンドが自動的に非圧縮でテキスト区切りされた大きなファイルデータを分割する場合は、line_numberis_partial、および start_offset 列には、その分割処理に関する情報が表示されます。(元のファイルの行番号が使用できない場合は、行番号が不定になる可能性があります。)

--scan ranges information SELECT line_number, POSITION, btrim(raw_line), btrim(raw_field_value), btrim(err_reason), is_partial, start_offset FROM stl_load_errors WHERE query = pg_last_copy_id(); --result -1,51,"1008771|13463413|463414|2|28.00|38520.72|0.06|0.07|NO|1998-08-30|1998-09-25|1998-09-04|TAKE BACK RETURN|RAIL|ans cajole sly","NO","Char length exceeds DDL length",1,67108864