Atomic UPSERT機能 - Parallel Data Pump

Teradata® Parallel Data Pumpリファレンス

Product
Parallel Data Pump
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/oqw1608578437373.ditamap
dita:ditavalPath
ja-JP/oqw1608578437373.ditaval
dita:id
B035-3021
Product Category
Teradata Tools and Utilities

基本UPSERT機能の拡張によってAtomic UPSERT機能がサポートされるようになりました。この拡張では、Teradata TPump1つのパスで1行のUPSERTを実行できます。1パスのロジックには、MultiLoadで使用されるUPSERT処理テクニックを採用しています。 1パスのロジックはAtomicと呼ばれます。このロジックでは、UPDATE文とINSERT文のペアをグループ化したものを識別して、1つのSQL文として実行するためです。

Atomic UPSERTの構文は、UPDATE文とINSERT文から構成されます。各文は、ELSEキーワードで区切ります。

Atomic upsert形式を使用する既存のTeradata TPumpのスクリプトは、変更する必要はありません。Teradata TPumpによって、古い組のUPDATE/INSERTは適宜、自動的にAtomic upsert機能に変換されます。既存のTPumpスクリプトの変更を試みた場合は、構文エラーになります。

新しい構文は、CLIv2およびBTEQアプリケーションでも使用可能ですが、Teradata TPumpジョブが実行される対象のデータベース バージョンがこの機能をサポートしているかどうかによって可用性は異なります。データベースがAtomic Upsertをサポートしていない場合、Teradata TPumpは、UPDATE要求が失敗したときにINSERT要求の送信ロジックを元のものに戻します。

UPSERT機能には、次のような3つの制約があります。
  • SAME TABLE:UPDATE文とINSERT文には、同じテーブルを指定しなければなりません。
  • SAME ROW: UPDATE文とINSERT文には、同じ行を指定しなければなりません。INSERT行にある基本索引の値は、処理対象のUPDATE行にある基本索引の値と一致させる必要があります。
  • HASHED ROW ACCESS: AMPハッシュ処理対象の行へのアクセスを単一AMPのハッシュ操作で行なえるようにするには、UPDATEに基本索引を完全に指定しなければなりません。

Teradata TPumpでは、基本的なUPSERT制約に対しては検証を行ないませんが、制約テストで不合格となったAtomic UPSERT構成があると、データベースはそのAtomic UPSERT構成を拒否し、該当のエラー メッセージをクライアントに返すことによってTeradata TPumpに通知します。

テンポラル テーブルでAtomic Upsertを実行する場合、オプションのテンポラル修飾子はUPDATE文の前に追加する必要があります。