STL_LOAD_COMMITS - Amazon Redshift

STL_LOAD_COMMITS

データのロードを追跡またはトラブルシューティングするための情報を返します。

このビューには、各データファイルがデータベーステーブルにロードされるのに合わせて進捗が記録されます。

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

テーブルの列

列名 データ型 説明
userid integer エントリを生成したユーザーの ID。
query integer クエリ ID。クエリ列は、他の各種システムテーブルおよびビューを結合するために使用できます。
slice integer このエントリでロードされるスライス。
name character(256) システム定義の値。
filename character(256) 追跡されるファイルの名前。
byte_offset integer この情報は、内部使用に限定されています。
lines_scanned integer ロードされたファイルからスキャンされた行数。この数は、実際にロードされた行数とは一致しない可能性があります。例えば、ロードによってスキャンが実行されたとき、COPY コマンドの MAXERROR オプションに基づいて、いくつかの不良レコードが許容される可能性があります。
エラー integer この情報は、内部使用に限定されています。
curtime timestamp このエントリが最後に更新された時刻。
status integer この情報は、内部使用に限定されています。
file_format character(16) ロードファイルの形式。指定できる値は次のとおりです。
  • Avro

  • JSON

  • ORC

  • Parquet

  • テキスト

is_partial integer COPY オペレーションの実行中に入力されたファイルが、いくつかの範囲で分割されていることを (true (1) で) 示す値。この値が false (0) の場合、入力ファイルは分割されていません。
start_offset bigint COPY オペレーション中に入力されたファイルが分割されていた場合、分割のオフセット値をバイト単位で示す値。各ファイル分割は、対応する start_offset 値を持つ個別のレコードとしてログ記録されます。ファイルが分割されていない場合、この値は 0 になります。

サンプルクエリ

次の例は、前回の COPY 操作の詳細を返します。

select query, trim(filename) as file, curtime as updated from stl_load_commits where query = pg_last_copy_id(); query | file | updated -------+----------------------------------+---------------------------- 28554 | s3://dw-tickit/category_pipe.txt | 2013-11-01 17:14:52.648486 (1 row)

次のクエリでは、TICKIT データベース内のテーブルについて、最新のロード状況を示すエントリが得られます。

select query, trim(filename), curtime from stl_load_commits where filename like '%tickit%' order by query;
query | btrim | curtime -------+---------------------------+---------------------------- 22475 | tickit/allusers_pipe.txt | 2013-02-08 20:58:23.274186 22478 | tickit/venue_pipe.txt | 2013-02-08 20:58:25.070604 22480 | tickit/category_pipe.txt | 2013-02-08 20:58:27.333472 22482 | tickit/date2008_pipe.txt | 2013-02-08 20:58:28.608305 22485 | tickit/allevents_pipe.txt | 2013-02-08 20:58:29.99489 22487 | tickit/listings_pipe.txt | 2013-02-08 20:58:37.632939 22593 | tickit/allusers_pipe.txt | 2013-02-08 21:04:08.400491 22596 | tickit/venue_pipe.txt | 2013-02-08 21:04:10.056055 22598 | tickit/category_pipe.txt | 2013-02-08 21:04:11.465049 22600 | tickit/date2008_pipe.txt | 2013-02-08 21:04:12.461502 22603 | tickit/allevents_pipe.txt | 2013-02-08 21:04:14.785124 22605 | tickit/listings_pipe.txt | 2013-02-08 21:04:20.170594 (12 rows)

レコードがこのシステムビューのログファイルに書き込まれていても、ロードがそれを含むトランザクションの一部として正しくコミットされているとは限りません。ロードのコミットを確認するには、STL_UTILITYTEXT ビューをクエリして、COPY トランザクションに対応する COMMIT レコードを探します。例えば、このクエリは、STL_UTILITYTEXT に対するサブクエリに基づいて STL_LOAD_COMMITS と STL_QUERY を結合します。

select l.query,rtrim(l.filename),q.xid from stl_load_commits l, stl_query q where l.query=q.query and exists (select xid from stl_utilitytext where xid=q.xid and rtrim("text")='COMMIT'); query | rtrim | xid -------+---------------------------+------- 22600 | tickit/date2008_pipe.txt | 68311 22480 | tickit/category_pipe.txt | 68066 7508 | allusers_pipe.txt | 23365 7552 | category_pipe.txt | 23415 7576 | allevents_pipe.txt | 23429 7516 | venue_pipe.txt | 23390 7604 | listings_pipe.txt | 23445 22596 | tickit/venue_pipe.txt | 68309 22605 | tickit/listings_pipe.txt | 68316 22593 | tickit/allusers_pipe.txt | 68305 22485 | tickit/allevents_pipe.txt | 68071 7561 | allevents_pipe.txt | 23429 7541 | category_pipe.txt | 23415 7558 | date2008_pipe.txt | 23428 22478 | tickit/venue_pipe.txt | 68065 526 | date2008_pipe.txt | 2572 7466 | allusers_pipe.txt | 23365 22482 | tickit/date2008_pipe.txt | 68067 22598 | tickit/category_pipe.txt | 68310 22603 | tickit/allevents_pipe.txt | 68315 22475 | tickit/allusers_pipe.txt | 68061 547 | date2008_pipe.txt | 2572 22487 | tickit/listings_pipe.txt | 68072 7531 | venue_pipe.txt | 23390 7583 | listings_pipe.txt | 23445 (25 rows)

次の例では、is_partial および start_offset 列の値が強調表示されています。

-- Single large file copy without scan range SELECT count(*) FROM stl_load_commits WHERE query = pg_last_copy_id(); 1 -- Single large uncompressed, delimited file copy with scan range SELECT count(*) FROM stl_load_commits WHERE query = pg_last_copy_id(); 16 -- Scan range offset logging in the file at 64MB boundary. SELECT start_offset FROM stl_load_commits WHERE query = pg_last_copy_id() ORDER BY start_offset; 0 67108864 134217728 201326592 268435456 335544320 402653184 469762048 536870912 603979776 671088640 738197504 805306368 872415232 939524096 1006632960