Teradata PTジョブでチェックポイントが記録されると、現在実行中のジョブ ステップで、Producerオペレータによる出力データ ストリームへの行の送出が停止し、入力データ ストリーム内のすべての行がConsumerオペレータによって処理されます。 すべての実行オペレータによって、ジョブのチェックポイント ファイルにレコードが書き込まれます。これらのレコードに含まれる情報を使用すると、データの損失や重複なしに、チェックポイントが完了した時点の処理を再開できます。
Teradata PTでは、データの開始チェックポイントとデータの終わりチェックポイントが自動的に作成されます。 また、tbuildコマンドを使用して、ユーザー定義のチェックポイント間隔(秒単位)を指定できます。
チェックポイントの後に処理されたデータの取り扱い
ジョブが失敗したときに、すでに行がデータ ストリーム内にある場合やロードされている場合、ジョブの再始動により、同じ行が再送信されることがあります。 ここでは、オペレータによる再始動時の重複行の取り扱い方法を説明します。
- Loadオペレータ:アプリケーション フェーズでは重複行は常に無視されます。
- Updateオペレータ マルチセット テーブルで重複行が有効な場合、再始動中に再送信されるロー行をTeradata Databaseは重複として識別し、ユーザーが指定したDMLオプションに従って、無視するか、エラー テーブルに送信します。
- Streamオペレータ Stream オペレータが行をTeradata Databaseに送信していない場合、ターゲット テーブルに重複はなくなります。Stream オペレータが行をTeradata Databaseに送信した場合は以下のようになります。
- ROBUST回復がオンの場合、Streamオペレータはジョブの再始動時に行を再送信しません。 ROBUST回復はデフォルトでオンになっています。
- ROBUST回復がオフの場合、Stream オペレータは行をTeradata Databaseに再送信します。