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