構文 - Parallel Data Pump

Teradata® Parallel Data Pump リファレンス

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


次のような場合に当てはまります。

LABEL
後に続くパラメータが後続のDML文のラベルであることを示すキーワード。
label
固有のlabelが、直後に続く1つ以上のDML文について使用されます。
ラベルは、Teradata SQLの列名と同じ構成規則に従う必要があります。
label名は、IMPORTコマンドのAPPLY句で参照することができます。
MARK
重複した、欠落した、または余分に存在するINSERT、UPDATE、またはDELETE行の項目をシステムがエラー テーブルに組み込み、処理を続行することを示すキーワード。
行内のすべての列値が別の行と完全に重複している場合、その行は重複行ということなります。重複行が許可されるマルチセット テーブルの場合、または固有索引が含まれている テーブル(固有性テストにより重複行チェックが不要)の場合は、重複行チェックはバイパスされます。
MARKが指定されていて、固有基本索引または固有副次索引に固有性違反が生じた場合、違反のあった行は重複行かどうかにかかわらずエラー テーブルに入れられます。UPSERTの場合には、INSERT部分とUPDATE部分の両方が失敗したときにエラーが記録されます。
重複行についてMARKもIGNOREも指定されていない場合、MARKはINSERTとUPDATEの両方に適用されます。同様に、欠落行または余分の行についてMARKもIGNOREも指定されていない場合、MARKはUPDATEとDELETEの両方に適用されます。
以下の場合に、MARKがデフォルトになります。
  • 欠落した行または余分の行を参照するUPDATEおよびDELETEの両方。
  • INSERTとUPDATEの両方に起因する重複行。ただし、これらの文が組み合わされてUPSERTを形成している場合は、IGNOREがデフォルトになります。
IGNORE
重複した、欠落した、または余分に存在するINSERT、UPDATE、またはDELETE行の項目を、システムがエラー テーブルに組み込まないことを示すキーワード。
システムは、エラー テーブル項目を作成せずに処理を続行します。
行内のすべての列値が別の行と完全に重複している場合、その行は重複行ということなります。重複行が許可されるマルチセット テーブルの場合、またはテーブルに固有索引が含まれている(固有性テストにより重複行チェックが不要)場合は、重複行チェックはバイパスされます。このような場合、IGNORE DUPLICATE ROWSは無視されます。固有性違反が起こると、違反のあった行はエラー テーブルに入れられます。
重複行についてINSERTもUPDATEも指定されていない場合、IGNOREはINSERTとUPDATEの両方に適用されます。
同様に、欠落行または余分の行についてUPDATEもDELETEも指定されていない場合、IGNOREはUPDATEとDELETEの両方に適用されます。IGNOREは、UPSERT操作のデフォルトの条件です。
INSERT
(DO INSERT FOR MISSING UPDATE ROWSまたはDO INSERT ROWSとして使う場合)UPSERT機能を使用することができます。
UPSERTを使うと、データベースのロード時間が節約されます。UPSERTを使うと、他のユーティリティでは2パスが必要な操作を、1パスで完了できます。このオプションに続くDML文は、1つのUPDATE文の後に1つのINSERT文が続くという順番になっていなければなりません。
このオプションでは、まずUPDATE文が実行されます。ターゲット行が存在しないためにUPDATEが失敗すると、Teradata TPumpは自動的にINSERTステートメントを実行します。この機能により、最初にデータを分類することなくデータベースを更新することができます。この機能を使わない場合、以下の基準でデータを分類する必要があります。
  • 更新する必要のある行
  • 挿入する必要のある行
UPSERT機能の使用法と制限事項について詳しくは、この後の「使用上の注意」に記載されています。
PARTITION
このDMLコマンドに関連付けられるすべてのSQL要求に使用されるセッション パーティションの名前を指定する、オプションのキーワード。
このキーワードが存在しない場合は、SESSIONSから作成されたセッションが使用されます。
2つ以上のDML文の逐次化が必要な場合、これらの文を別々のパーティションに分けることはできません。逐次化では、同一の行ハッシュ値を持つすべてのDML文を同じセッションから発行する必要があります。
複数のDMLと、1を超えるパックを使用する場合、より多くのスループットが得られます。DBQL分析が、AMP CPUと比べて高いPE CPUを示している場合、パーティションの利用で、それぞれのDMLに一意のTPUMPパーティションを割り当てることで文のキャッシュの利用向上につながるため、構文解析が減ります。 したがって、パーティションあたりのすべての要求は文字通り同一で、1つの同じ文キャッシュ. エントリを使用します。
さらにパックの増大による同時ステップ実行、さらにはセッション数の増大により、パフォーマンス上の成果を挙げることができます。
partition_name
パーティション名を識別するパラメータ。
パーティション名は、Teradata SQLの列名と同じ構成規則に従わなければなりません。
SERIALIZEON
指定したフィールドについて逐次化をオンにする目的で使用するキーワード。
SERIALIZEONキーワードは、IGNORE文またはMARK文の、前後または間のどこに配置して使用してもかまいません。
serialize_on_field
逐次化をオンにする対象のフィールド名を識別するパラメータ。
ここに入るフィールド名は、INSERT文で使用されているLAYOUTコマンドで使用し、APPLY句で参照されているものと同じものになります。
フィールド名の間はコンマで区切り、全体を括弧で囲みます。
USE
DMLのSQL文で使用するフィールドを指定するキーワードです。
このキーワードを使用すると、それぞれのDMLが実際に必要とするフィールドをLAYOUTコマンドから指定できます。したがって、すべてのフィールドからのデータは送られません。
USEキーワードは、IGNORE文またはMARK文の、前後または間のどこに配置して使用してもかまいません。
use_field
使用するフィールド名を識別するパラメータ。
DMLのSQL文が使用する各LAYOUT FIELDは、USEリストに列挙されている必要があり、列挙されていない場合はエラーになります。
フィールド名の間はコンマで区切り、全体を括弧で囲みます。
ArraySupport
ON/OFF
.BEGIN LOADコマンドと.DMLコマンドの"ArraySupport ON|OFF"オプション
.BEGIN LOADコマンド内に"ArraySupport ON"を指定すると、一組の.BEGIN LOADコマンドと.END LOADコマンドに囲まれている.DMLコマンドは、.DMLコマンドに対して"ArraySupport OFF"が指定されていない限り、そのDML文にArraySupport機能を使用します。.BEGIN LOADコマンドに対するArraySupportのデフォルト値はOFFです。
.DMLコマンドに"ArraySupport ON|OFF"を指定しない場合、その.DMLコマンドに対するArraySupportのデフォルト値は、その.DMLコマンドがある.BEGIN LOADコマンド内のArraySupportの設定値になります。.DMLコマンドに"ArraySupport ON|OFF"を指定すると、.BEGIN LOADコマンドのデフォルト設定値はこの値によって上書きされます。
.DMLコマンドでArraySupport機能を使用する場合は、含めるDML文は1つだけにし、.DMLコマンドが参照するセッション パーティションはその.DMLコマンドが排他的に使用するようにしなければなりません。
DML文がUPSERT 型の文の場合、一組のINSERT/UPDATE文として、DO INSERT FOR MISSING UPDATE句とともに指定できます。Teradata TPumpは、Atomic Upsertなど、UPDATE … ELSE INSERT …と同等の形式を作成し、実際のDML文として使用します。または、UPDATE … ELSE INSERT …文をDO INSERT FOR MISSING UPDATE句とともに直接指定できます。
Atomicでない形式のUPSERTは、Teradata TPump Array Supportではサポートされていません。