STL_LOADERROR_DETAIL
COPY コマンドを使用したテーブルのロード中に発生したデータ解析エラーのログを表示します。ディスク領域を節約するために、各ロード操作に関してノードスライスあたり最大 20 件のエラーがログに記録されます。
解析エラーは、Amazon Redshift がデータ行をテーブルにロードするときに、データ行内のフィールドを解析できない場合に発生します。例えば、テーブルの中のある列が整数データ型を前提としており、データファイルではそのフィールドに文字列が含まれている場合、解析エラーが発生します。
STL_LOADERROR_DETAIL は、STL_LOAD_ERRORS をクエリしてエラーに関する一般的な情報を得た後で、解析エラーが発生したデータの正確な行と列などの追加的な詳細を得るためにクエリします。
STL_LOADERROR_DETAIL ビューには、解析エラーが発生した列を含む、そこまでのすべてのデータ列が含まれています。VALUE フィールドを使用すると、エラーまでに正しく解析された列と、エラーの列で実際に解析されたデータ値を確認することができます。
このビューはすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
注記
STL_LOADERROR_DETAIL には、メインクラスターで実行されるクエリのみが含まれます。同時実行スケーリングクラスターで実行されるクエリは含まれていません。メインクラスターおよび同時実行スケーリングクラスターの両方で実行されるクエリにアクセスするには、SYS モニタリングビュー SYS_LOAD_ERROR_DETAIL を使用することをお勧めします。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。
テーブルの列
列名 | データ型 | 説明 |
---|---|---|
userid | integer | エントリを生成したユーザーの ID。 |
slice | integer | エラーが発生したスライス。 |
session | integer | ロードを実行するセッションのセッション ID。 |
query | integer | クエリ ID。クエリ列は、他の各種システムテーブルおよびビューを結合するために使用できます。 |
filename | character(256) | ロードの入力ファイルへの完全なパス。 |
line_number | bigint | ロードファイル内の、エラーが発生した行の番号。 |
field | integer | エラーが発生したフィールド。 |
colname | character(1024) | 列名。 |
値 | character(1024) | フィールドの解析済みデータ値 (切り詰められることがあります)。ロードデータ内のマルチバイト文字は、ピリオドで置換されます。 |
is_null | integer | 解析された値が null であるかどうか。 |
type | character(10) | フィールドのデータ型。 |
col_length | character(10) | 定義されている場合、列の長さ。このフィールドは、データ型に長さの制限がある場合、値を持ちます。例えば、データ型が「character(3)」の場合、この列の値は「3」になります。 |
サンプルクエリ
次のクエリは、STL_LOAD_ERRORS を STL_LOADERROR_DETAIL に結合して、テーブル ID が 100133 である EVENT テーブルのロード時に発生した解析エラーの詳細を表示します。
select d.query, d.line_number, d.value, le.raw_line, le.err_reason from stl_loaderror_detail d, stl_load_errors le where d.query = le.query and tbl = 100133;
次のサンプル出力は、正常にロードされた列と、エラーのある列を示しています。この例では、3 番目の列で解析エラーが発生するまでに 2 つの列が正しくロードされ、3 番目の列では整数が前提となっているにもかかわらず文字列が解析されています。フィールドは整数であることが前提なので、初期化されていないデータである文字列「aaa」は null と解析されて、解析エラーが発生します。出力は、生の値、解析された値、およびエラー理由を示しています。
query | line_number | value | raw_line | err_reason -------+-------------+-------+----------+---------------- 4 | 3 | 1201 | 1201 | Invalid digit 4 | 3 | 126 | 126 | Invalid digit 4 | 3 | | aaa | Invalid digit (3 rows)
クエリによって STL_LOAD_ERRORS と STL_LOADERROR_DETAIL が結合されると、データ行の各列にエラー理由が示されます。これは、その行でエラーが発生したことを示しているだけです。実際に解析エラーが発生しているのは、結果の最後の行です。