構文 - 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


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

SESSIONS
Teradata TPumpのセッション数を指定するためのキーワード。
number
更新の目的でTeradata TPumpのためにログオンするセッション数。
1つのTeradata TPumpタスクで、指定した数だけのセッションにログオンして使用できます。様々なユーティリティ機能を実行するために、さらにもう1つのセッションが使用されます。
numberにはデフォルト値がないので、必ず指定する必要があります。このパラメータに最大値はありませんが、システム全体でのセッション制限(マシンにより異なる)は存在します。
セッション数を制限することにより、外部システムとデータベースの両方でリソースが節約されます。ただし、この節約の結果として、スループットが低下し、処理時間が長くなる可能性があります。
threshold
更新の目的でユーティリティのためにログオンするセッションの最小数。
セッションにログオンする時点で制限がこのしきい値に達している場合、Teradata TPumpはログオンの試行を停止し、すでにログオンされているセッションを使用します。
しきい値に達する前にすべてのセッションを使い果たしている場合は、Teradata TPumpはすべてのセッションからログオフし、SLEEP値で設定された時間だけ待機し、その後もう一度ログオンを試みます。
ERRORTABLE
データベースとエラー表を指定する場合のキーワード(オプション)。
エラー テーブルを修飾する接頭語としてデータベース名を使用します。実働データベースでないデータベースを指定することによって、実働システムにエラー テーブルが散在してしまう事態が避けられます。データベースに大量のPERMスペースが割り当てられている可能性が高いため、Teradata TPumpタスクに関係するテーブルが含まれるすべてのデータベースでそのためのスペースを増やす必要がなくなります。
共有するエラー テーブルが役立つかどうかは、ユーザーが確認する必要があります。異なる入力レコード レイアウトの異なるテーブルをターゲットとする2つのジョブが同じエラー テーブルを共有することはできません。
APPEND
既存のエラー テーブルを指定します。
指定したエラー テーブルが存在しない場合、Teradata TPumpによって作成されます。既存のエラー テーブルとTeradata TPumpによって作成されたエラー テーブルの構造に互換性がない場合、Teradata TPumpがエラー テーブルを挿入または更新しようとしたときにジョブはエラーとなります。
NODROP
ジョブの終了時に空であっても、エラー テーブルは削除(DROP)しないことを指定します。
NODROPはAPPENDと一緒か単独で使用して、エラー テーブルを維持します。
QUEUETABLE
キュー テーブルとしてエラー テーブルを選択します。
dbname.
エラー テーブル用の、修飾されたデータベース名。
データベースを指定しない場合、ログ テーブルを含むデータベースが使用されます。dbnameの後のピリオドは、データベース名とtnameパラメータを区切るものです。別のデータベースを指定すると、実働データベースにエラー テーブルが散在してしまうのを回避できる場合があります。
tname
ロード中に検出されたエラーについての情報を受け取るエラー テーブル。
tnameの前には、データベース名修飾子を付けることができます。このテーブルのことは、エラー テーブルまたはET テーブルともいいます。
TPumpは、FALLBACKを保護レベルとして明示的に指定します。
デフォルトのエラー テーブル名は、jobname_nnn_ETのように、ジョブ名、下線、ロードの順序番号、下線、そしてETが組み合わされた名前になります。
tnameには、再始動でないタスクの場合には既存以外のテーブル、再始動のタスクの場合には既存のテーブルを指定します。
このエラー テーブルに挿入されるすべてのエラーについて、エラーを起こした文とデータ レコードの組み合わせの識別子が、tnameの該当する行に組み込まれます。エラー テーブルの各列にある情報を調べれば、エラーを引き起こした特定のデータ レコードと文の組み合わせを識別できます。エラー テーブルの列の名前と定義は、次のとおりです。
  • ImportSeq – IMPORTコマンドの連続番号を含むバイト整数です。
  • DMLSeq – コマンド ファイル内のDMLコマンドの連続番号を含むバイト整数です。
  • SMTSeq – DMLコマンド内のDML文の連続番号を含むバイト整数です。
  • ApplySeq – IMPORTコマンド内のAPPLY句の連続番号を含むバイト整数です。
  • SourceSeq – データ ソース内のデータ レコードの位置を含む整数です。
  • DataSeq – データ ソースを識別するバイト整数です。この値は常に1です。
  • ErrorCode – エラー戻りコードを含む整数です。
  • ErrorMsg – エラー コードに対応するエラー メッセージが含まれています。
  • ErrorField – SMALLINT。有効な場合は、不正フィールドを示します。

    データベース に送られるレコード フィールドの名前は、LAYOUTコマンドと、それに付随するFIELDおよびTABLEコマンドによって指定されます。

  • HostData - 外部システムによって送られたデータを含む可変長バイト列。
  • RowInsetTime – Teradata TPumpエラー テーブルにローが挿入された時間を示します。
ERRLIMIT
エラーのために拒否されたレコードに制限を設定するためのキーワード(オプション)。
ERRLIMITを超えると、Teradata TPumpはチェックポイントを実行し、ジョブを終了します。ERRLIMITを超える前に読み取られたデータは、ジョブが終了する前に実行が完了します。これは、ERRLIMITを超えたためジョブが終了した場合に、ERRLIMITに指定した以上の数のエラー レコードがエラー テーブルに存在している可能性があることを意味します。データ エラーの診断を容易にするためには、1つの要求にパックされる文の数よりも大きい値をERRLIMITに指定する必要があります。
errcount
拒否されたレコードの数を制御するためのエラーしきい値。使用方法は、errpercentパラメータと一緒に使うかどうかによって異なります。
  • errpercentパラメータなしで使う場合、(BEGIN LOADとEND LOADコマンドの間で送られるすべてのレコードの中で)ロード時に拒否されたレコードのうちtnameに記録できるレコード数を、符号なし整数として指定します。デフォルトは、「制限なし」です。
  • errpercentパラメータ(これは概数)ありで使う場合は、errpercentパラメータが適用される前にデータベースに送る必要がある最大レコード数を指定します。
例えば、errcount = 100でerrpercent = 5である場合、約5パーセントという拒否制限が適用される前に、100個のレコードがデータベースに送られている必要があります。100番目のレコードが送られて、そのうち最初の5個のレコードだけが拒否された場合、まだ制限は超過していません。ただし、6個のレコードが拒否された場合は、制限を超過したことになります。100番目のレコードが送られた後で、5パーセントの制限を超過していると、Teradata TPumpは処理を停止します。
制限を超過すると、Teradata TPumpはエラー メッセージを外部システムの通常のメッセージ宛先へ書き込み、タスクを終了します。
使用中の テーブルはすべて、終了時の状態のままになります。そのため、データ レコードのエラーを訂正し、最後のチェックポイントからタスクを再始動することが可能です。再始動が不可能であるか必要でない場合は、不必要なテーブルがあればそれらを削除する必要があります。
CHECKPOINT
チェックポイントの実行間隔を分単位で示すキーワード。
直後に、frequency値が置かれます。
frequency
チェックポイント操作の実行間隔(分単位)。0~60(両端含む)の範囲の符号なし整数を指定します。
CHECKPOINT frequencyに60以下の値を指定した場合、指定したfrequency(分単位)でチェックポイントが記録されます。
CHECKPOINT frequencyに60を超える値を指定した場合、Teradata TPumpはそのジョブを終了します。
CHECKPOINT frequencyにゼロを指定すると、すべてのチェックポイント機能がバイパスされます。Teradata Tools and Utilities 07.00以前とは違って、Teradata TPumpはチェックポイント操作をまったく行ないません。データのロードが始まると、Teradata TPumpジョブは再起動不能になります。
CHECKPOINT frequencyを特に指定しない場合には、デフォルトで15分間隔のチェックポイント操作が行なわれます。
このパラメータを指定しても指定しなくても、それぞれのデータ入力ソースの終わりにチェックポイントが書き込まれます。
FOR、FROM、THRUの各オプションとともにFDL互換INMODルーチンを使用する場合には、チェックポイントは設定されません。FOR、FROM、THRUの各オプションとともにFDL互換INMODルーチンを使用すると、チェックポイント間隔が0以外であれば、Teradata TPump が終了するとともにエラー メッセージが表示されます。
DATA ENCRYPTION
ON/OFF
Teradata TPumpとデータベース間の通信時にインポート データと要求テキストを暗号化するためのキーワード。
ONの場合、暗号化が実行されます。DATAENCRYPTIONを指定しない場合のデフォルトはOFFです。
実行時パラメータ"-y"は、接続されているすべてのセッション、すなわち制御セッションとロード セッションすべてに暗号化を適用します。このオプションは、BEGIN LOADコマンドのSESSIONSキーワードで指定されたセッションであるロード セッションにのみ暗号化を適用し、明示的にOFFを指定した場合は実行時パラメータ"-y"を上書きします。例えば、ジョブにPARTITIONコマンドが使用されていないと仮定すると、ジョブで"-y"実行時パラメータが指定されスクリプトでDATAENCRYPTION OFFが指定されている場合、暗号化は制御セッションにのみ適用されます。同様にジョブにPARTITIONコマンドが使用されていないと仮定すると、ジョブで"-y"実行時パラメータが指定されずにスクリプトでDATAENCRYPTION ONが指定されている場合、暗号化はすべてのロード セッションに適用されますが、制御セッションには適用されません。
PARTITIONコマンドが使用されている場合は、PARTITIONコマンドで明示的に指定された暗号化設定は、PARTITIONコマンドで定義されるセッションの間、このオプションの設定を上書きします。
ARRAY SUPPORT
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機能(.BEGIN LOADコマンドまたは.DMLコマンドで定義されている)を使用する場合は、含める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ではサポートされていません。
TENACITY
Teradata TPumpジョブの実行に必要なセッションにログオンするまでユーティリティが試行する長さを定義するためのキーワード。hoursパラメータと一緒に指定します。
ログオンが拒否されると、Teradata TPumpはSLEEPパラメータで指定された時間(デフォルトは6分)だけ遅延した後、ログオンを再試行します。この再試行は、ログオンが成功するか、TENACITYで指定された時間数を超過するまで行なわれます。
TENACITYパラメータを指定しない場合、ユーティリティはログオンの試行を4時間続けます。
hours
Teradata TPumpのTENACITY係数。時間を単位とする整数で指定します。必要なセッションへのログオンをTeradata TPumpが試行し続ける時間数を指定します。
このパラメータを指定しない場合、hoursのデフォルト値は4です。hoursにゼロを指定した場合、容量の限界のためにログオンに1回失敗すると、Teradata TPumpはログオンを再試行しません。
「no more sessions」というエラー(ワークステーションCLIからの戻りコード301、またはメインフレームCLIからの戻りコード513)が表示された場合、Teradata TPumpは、すでに得られたセッションを削除し、以降、ログオンを再試行することなくジョブを終了します。
LATENCY
ステイル バッファをフラッシュするためのキーワード。
Teradata TPumpの待機オプションをNamed Pipe Access Moduleに対して使用する場合は、Named Pipe Access Moduleの初期化文字列に need_full_block = noオプションを追加する必要があります。
seconds
バッファの中に最も古いレコードが留まっていた秒数をベースとした、フラッシングのしきい値。
LATENCYは1秒未満にはできません。
SERIALIZEパラメータをオフに設定した場合、ステイル状態になるのは現在のバッファだけです。SERIALIZEがオンの場合、ステイル状態のバッファの数は、0からセッション数までの範囲に渡ります。
NOTIMERPROCESS
子プロセスをタイマー プロセスとして分岐しないようTeradata TPumpに指示するキーワード。
子プロセスが分岐されると、待機時間が満了した時点で、SIGUSR2信号が親プロセスに通知します。子プロセスが分岐されなければ、待機時間が満了した時点で、SIGALRM信号がTeradata TPumpプロセスに通知します。MQSeries Access Moduleの使用時、UNIXプラットフォーム上で待機機能が正しく機能するためには、子プロセスが必要です。
minutes
データベースまたはCLIv2でのセッション制限エラーによってログオンの試行が失敗した場合に、次の試行まで待機する時間(単位: 分)。
SLEEPを指定しない場合、ログオンの試行が失敗したときのデフォルトの間隔は6分です。
SERIALIZE ON/OFF
逐次化機能の状態(ON/OFF)を設定するキーワード。この機能をONにすると、特定のキーの組み合わせ(行)についての操作が逐次的に行なわれることが保証されます。
SERIALIZEを指定しない場合、デフォルトはOFFです。
この機能は、FIELDコマンドのKEYオプションを使って、ロードされるデータの基本キーが指定されている場合にのみ意味があります。
TABLEコマンドの使用時、ターゲット テーブルがNoPIテーブルの場合は、逐次化をOFFに設定しなければなりません。
データ保全性を保証するため、Teradata TPumpジョブにUPSERTが含まれている場合、明示的な値がなければSERIALIZEパラメータはデフォルトとしてONをとります。
PACKMAXIMUM
現在のロードの最大PACK係数を動的に判定するようTeradata TPump に要求するためのキーワード。
最大値は1500です。
UTY6652のメッセージ内に表示されます。PACKMAXIMUMを使用する場合、初期化中、データベースとのやり取りを何度も繰り返して、最大限のPACK係数を発見的に判断する必要があるため、このように判断された値は特に、後続の実行で使用されます。
最大パック係数の最大値が600から1500に変更されたため、PACKMAXIMUMが指定されている場合、Teradata TPumpでパック係数のテストにかかる時間が以前よりも長くなります。
PACK
1つの複数文要求にパックする文の数を指定するためのキーワード。
最大値は1500です。
文をパックすると、アプリケーションとデータベースとの間の送受信の数が減少するので、ネットワーク/チャネルの効率が上がります。
statements
単一の複数文の要求に組み込む文の数(1500までの正の整数)です。
デフォルト値は、1つの要求当たり20個の文です。
特定の状況において、Teradata TPumpはパック係数の設定が高すぎると判断します。次に、Teradata TPumpはパック係数の設定を適切な値に自動的に下げ、警告メッセージを発行します。
例えば、「UTY6625 WARNING: Packing has been changed to 12 statements per request」(UTY6625警告: パックが1要求当たり12文に変更されました)を発行して、続行します。
文をパックすると、アプリケーションとデータベースとの間の送受信の数が減少するので、ネットワーク/チャネルの効率が上がります。
パック係数の妥当性検査は、いっぱいにパックした要求を、prepareを使ってデータベースに送信することによって実施されます。このテストでは、構文の問題と、要求が極端に大きくて構文解析プログラムに負担をかけ過ぎないかどうかが検査されます。
スクリプトの開発プロセスを簡略化するために、Teradata TPumpは過負荷の構文解析プログラムから返された特定のエラーを無視し、要求を縮小してprepareを再試行します。この要求が正常に実行され、改訂されたパック係数のサイズを示す警告が発行されるまで行なわれます。
そのような警告が発行された場合には、Teradata TPumpスクリプトを修正して、その警告が発行されないようにする必要があります。そうすれば、要求を縮小するという時間を浪費するプロセスを回避できます。
ソース パーセルの長さが定義されたデータと一致しない場合、パックが失敗する恐れがあります。失敗した場合、Teradata TPumpは次のメッセージを発行します。
「UTY2819 WARNING: Packing may fail because input data does not match with the data defined(UTY2819 警告: 入力データが、定義済みのデータと一致しないため、パックに失敗する恐れがあります)」
この問題を解消するには、パック係数を増やし、ジョブを再発行します。
RATE
文をデータベースに送信する速度を入力するためのキーワード。
RETRYTIMES nn
再試行回数を指定するためのキーワード。
デフォルト値は16です。
nnが0の場合、再試行回数は16に設定されます。RETRYTIMESが設定されている場合は、"BEGIN LOAD"と"END LOAD"のペアの間の要求/データに対してのみ有効になります。
statement_rate
文をデータベースに送信する、1分当たりの初期最大速度。
文の速度は、正の整数でなければなりません。 文の速度が指定されない場合、速度は無制限になります。
statement_rateが文のパック係数より小さい場合、Teradata TPumpはパック係数より小さい要求を送信します。
Teradata TPumpモニターを使用中の場合は、statement_rateを後で変更することができます。
SLEEP
待機する時間を分単位で指定するためのキーワード。
NOATOMICUPSERT
ジョブ内のUPSERT DMLがAtomic UPSERT形式で提供されていない場合に、Atomic UpsertでないUPSERT DML操作を実行するためのキーワード。
NOMONITOR
Teradata TPumpが、Teradata TPumpモニターによる文の速度の変更をチェックしたり、Teradata TPumpモニターのステータス情報を更新したりしないようにするためのキーワード。
ROBUST ON/OFF
ONパラメータは、ターゲット テーブルに識別列がある場合にデータの保全性を保証します。
OFFパラメータは、単純再始動ロジックを使用するようにTeradata TPumpに通知します。この場合、再始動時に、Teradata TPumpはジョブ内で最後にチェックポイントが発生した箇所から開始します。チェックポイントの後に実行された処理があれば、それも再実行されます。この方法には、ROBUSTロジックの場合と違って、付加的なデータベースに情報を書き込むための余分のオーバーヘッドがありません。
一部のエラーは再処理を実行することがあり、文の再実行(例えば、行の再挿入)によって、エラー テーブルの行が余分に増える結果となります。また、ターゲット テーブルが重複行を許可している場合は、文の再実行によって余分な重複行がターゲット テーブルに挿入されることがあります。
操作の結果が変わることなく繰り返せるようなDML文であれば、単純ロジックで十分です。単純ロジックでない文の例には、以下のものがあります。
  • 重複行を許可する複数のテーブルへの挿入(multisetテーブル)。
  • 自己参照DML文。次のような文のことです。
    • “UPDATE FOO SET A=A+1...”
    • “UPDATE FOO SET A = 3 WHERE A=4”
MACRODB
Teradata TPumpが使用するマクロを格納するデータベースを指定するためのキーワード。
dbname
Teradata TPumpが作成/使用するマクロを格納するデータベースの名前。
このデータベースは、マクロのデフォルトの位置である「ログ再始動テーブルを含むデータベース」に取って代わります。
NOTIFY
Teradata TPump に導入されているユーザー出口通知オプション。
  • NOTIFY OFFを指定すると、通知ユーザー出口オプションが抑制されます。
  • NOTIFY LOWは、次の表の低通知レベルの列に"Yes"と表示されているイベントについて、ユーザー出口通知オプションを有効にします。
  • NOTIFY MEDIUMは、非常に重要なイベントについて、ユーザー出口通知オプションを有効にします。こうしたイベントについては、次の表の中通知レベルの列に"Yes"と表示されています。
  • NOTIFY HIGHは、操作上の判断ポイントが含まれるすべてのTeradata TPumpイベントについて、ユーザー出口通知オプションを有効にします。こうしたイベントについては、次の表の高通知レベルの列に"Yes"と表示されています。
  • 次の表のULTRA Notification Levelのカラムには"Yes"が指定されているので、NOTIFY ULTRAによって、操作の決定点に関わるすべてのTeradata TPumpイベントのユーザー出口通知オプションが有効になります。
  • Teradata Tools and Utilities 14.00からは、NOTIFYのエラー条件のいずれかが生じた場合、TPumpが致命的なエラーとして終了します。
EXIT name
ユーザー定義の出口を呼び出すキーワード句です。ここで、nameは、ユーザーが指定したライブラリの名前で、_dynamnというメンバー名が付いています。
出口は、C言語またはC言語と互換性のある実行時環境を持つ言語で書かれている必要があります。
UNIXシステムのバージョンによっては、モジュールが現在のディレクトリにある場合、EXIT name指定に./接頭文字を追加しなければならない場合があります。
TEXT 'string'
ユーザーが供給する80文字までの文字列で、指定された出口ルーチンにTeradata TPumpが渡します。
string指定は、単一引用符文字( ' )で囲まれていなければなりません。
MSG 'string'
ユーザーが供給する16文字までの列で、Teradata TPumpが次の場所に記録します。
  • メインフレーム接続のz/OSクライアント システム用のオペレータのコンソール
  • UNIXおよびWindowsシステムのワークステーション接続クライアント システムでは、システム ログ
string指定は、単一引用符文字( ' )で囲まれていなければなりません。
EXIT64 name
ユーザー定義の出口を呼び出すキーワード句です。ここで、nameは、ユーザーが指定したライブラリの名前で、_dynamnというメンバー名が付いています。
EXIT64キーワードが存在する場合、関連する行カウンタは、4バイトの符号なし整数の代わりに、8バイトの符号なし整数を使用します。
EXITON name
ユーザー定義の出口を呼び出すキーワード句です。ここで、nameは、ユーザーが指定したライブラリの名前で、_dynamnというメンバー名が付いています。
出口はCで記述するか、Cと互換性のある実行時環境の言語で記述する必要があります。一部のバージョンのUNIXシステムでは、モジュールが現在のディレクトリ内にある場合、./prefixの文字をEXITEON名の指定に追加しなければならないことがあります。
キーワードEXITEONはキーワードEXIT64を自動的にサポートします。

次のテーブルに通知を作成するイベントを示します。

通知が作成されるイベント
通知レベル
イベント 意味
Checkpoint Begin(チェックポイント開始) No No Yes Yes Teradata TPumpでのチェックポイント開始
チェックポイントの終了 No No Yes Yes Teradata TPumpでのチェックポイントの正常終了。
CLIv2エラー Yes Yes Yes Yes CLIv2エラー受信
データベース エラー Yes Yes Yes Yes Teradata TPump" を終了させるデータベース エラー。
DMLエラー No No Yes Yes DMLエラーのエラー表への記録開始
エラー テーブル No No Yes Yes エラー テーブルに関するSEL COUNT(*)要求の処理成功
終了 Yes Yes Yes Yes Teradata TPumpでのローディング タスク完了
ファイルまたはINMODのオープン No No Yes Yes IMPORTコマンドが正常に処理された
インポートの開始 No No Yes Yes 最初のレコードの読み取り開始
インポートの終了 No No Yes Yes 最後のレコードの読み取り終了
初期化 Yes Yes Yes Yes NOTIFYオプション(BEGIN LOADコマンド)の処理成功
初期化EON Yes Yes Yes Yes NOTIFYオプション(BEGIN LOADコマンド)の処理成功
Interim Run Statistics(暫定実行統計) No No No Yes モニター インターフェース表の更新開始。または、チェックポイントの正常終了か、Importの正常終了
Table Statistics(テーブル統計) No Yes Yes Yes Teradata TPumpが表統計の書き込みに成功した。
データベース再起動 No No No Yes データベースまたはCLIからのクラッシュ エラー受信