STL_LOADERROR_DETAIL - Amazon Redshift

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

STL_LOADERROR_DETAIL

COPY コマンドを使用したテーブルのロード中に発生したデータ解析エラーのログを表示します。ディスク領域を節約するために、各ロード操作に関してノードスライスあたり最大 20 件のエラーがログに記録されます。

解析エラーは、Amazon Redshift がデータ行をテーブルにロードするときに、データ行内のフィールドを解析できない場合に発生します。例えば、テーブルの中のある列が整数データ型を前提としており、データファイルではそのフィールドに文字列が含まれている場合、解析エラーが発生します。

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

STL_LOADERROR_DETAIL ビューには、解析エラーが発生した列を含む、そこまでのすべてのデータ列が含まれます。VALUE フィールドを使用すると、エラーまでに正しく解析された列と、エラーの列で実際に解析されたデータ値を確認することができます。

このビュー はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できます。通常のユーザーは自分のデータのみを表示できます。詳細については、「Visibility of data in system tables and views」を参照してください。

テーブルの列

列名 データ型 説明
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 が結合されると、データ行の各列にエラー理由が示されます。これは、その行でエラーが発生したことを示しているだけです。実際に解析エラーが発生しているのは、結果の最後の行です。