17.10 - 堅固動作および非堅固動作モード - Parallel Transporter

Teradata® Parallel Transporterリファレンス

Product
Parallel Transporter
Release Number
17.10
Release Date
2021年10月
Content Type
プログラミング リファレンス
Publication ID
B035-2436-061K-JPN
Language
日本語 (日本)

より堅固な再始動を実現するには、堅固動作モードを使用します。このモードは、すべてのDML操作をチェックポイントにして、再始動時に操作が複数回適用されないようにします。

堅固動作モードでは再始動ログに対して、パフォーマンスにより大きな影響を与える書き込みがより多く必要となりますが、堅固動作モードを使用すると、再始動で通常の間隔チェックポイント操作では必要となる行の再処理が確実に回避されます。

堅固動作はすべてのStreamオペレータ ジョブのデフォルトのモードです。 Robust属性はこのモードをオンまたはオフにします。 堅固動作再始動ロジックを使用するかどうかが確かでない場合は、Robustパラメータを'Yes'に設定すると常に安全を確保できます。

  • 堅固動作モード - この属性を“yes"に設定すると、Stream オペレータに堅固動作再始動ロジックを使用するように指示します。
    VARCHAR Robust = 'Yes' (or 'Y')

    堅固動作モードによって、バッファが正常に更新を完了するたびに、ログ テーブルに行が書き込まれるようになります。 正常に処理された行ごとにミニ チェックポイントが書き込まれます。 これらのミニ チェックポイントは、チェックポイントが取得されるとログから削除され、再始動時に正常に処理された行を識別して、再始動時にこれらの行を回避できるようにするために使用されます。 堅固動作モード時は、すべての行が1度だけ処理されます。 パック係数が大きくなればなるほど、このアクティビティに関与するオーバーヘッドは小さくなります。

    堅固動作モードの選択は、データ保全性や許容できないパフォーマンスに関する問題を回避するときに、特に有用です。 堅固動作モードは、再始動時の悪影響を回避するために、以下の状況で推奨されます。

    • multisetテーブルへのINSERT - 堅固動作モードは、2度目に同一の行を挿入する可能性のある、重複行の挿入を防ぎます。
    • 計算に基づくUPDATE - 堅固動作モードは、計算処理が重複して適用されるのを防ぎます。
    • 大きなパック係数 - 堅固動作モードは、再始動後に、エラー テーブルへのエラーのロギングという時間を浪費するプロセスである重複行の適用および拒否を発生させません。
    • タイムスタンプ付きデータ

      非堅固動作モード時に行が再適用された場合、その他のすべてのデータが同一でも、再適用された行にはそれぞれ元の行とは異なるタイムスタンプがマークされます。 データベースにとって、これらの再適用された行は、同一のプライマリ インデックス値を持つ異なる行なので、重複していてもこれらの行が挿入されます。

      - 堅固動作モードは、重複行の原因となる、同一の行に異なるタイムスタンプを設定する可能性を防ぎます。
  • 非堅固動作モード - この属性を“no"に設定すると、Stream オペレータに堅固動作ロジックではなく単純再始動ロジックを使用するように指示します。
    VARCHAR Robust = 'No' (or 'N')

    非堅固動作モードでは、ジョブの最後のチェックポイントが出現する位置から再始動が開始します。 一部の追加処理は、チェックポイントが書き込まれた後に実行されることが多いので、チェックポイント後に実行されるリクエストは、再始動プロセスの一部としてStreamオペレータによって再度実行依頼されます。 このことは通常、Delete、Insert、およびUpsertの処理について問題になったりデータベースに障害を与えたりすることはありませんが、オペレータがすでに存在する行を挿入しようとしたり存在しない行を削除しようとしたりするので、再実行中のステートメントはエラー テーブルにより多くの行を生成します。

    更新の再試行は、更新の計算が行内の既存のデータに基づく場合などに(量を10%増加するなど)問題となることもあります。更新の計算を2回実行すると、10%余分に量が増加されてしまい、データ保全性が損なわれます。このような更新では、DML操作が複数回適用されないように、堅固動作モードを使用することが適しています。

    非堅固動作(単純再始動)方式では、堅固動作ロジックで必要な再始動ログ テーブルへの追加の挿入による余分なオーバーヘッドは発生しないため、処理全体は非常に高速です。