マルチフェーズ コーディネーションの例 - Parallel Transporter

Teradata Parallel Transporter Operator プログラマ ガイド

Product
Parallel Transporter
Release Number
16.20
Published
2018年4月
Language
日本語
Last Update
2018-09-07
dita:mapPath
ja-JP/zgu1512703446673.ditamap
dita:ditavalPath
ja-JP/zgu1512703446673.ditaval
dita:id
B035-2435
Product Category
Teradata Tools and Utilities

次のテーブルは、マルチフェーズ コーディネーション プロトコルを、マスター スレーブ リレーションシップで実行されているLoadオペレータの3つのインスタンスで使用する場合の例を簡単にまとめたものです。 この実行では、マスター オペレータが処理環境を確立している間、スレーブ オペレータはアイドル モードのように動作します。 すべてのオペレータが同期点に達すると、独立並列処理が開始します。

実行時には、Teradata PTプロセッサは、Initiate、Execute、Checkpoint、Restart、またはTerminate関数を使用して、並列実行プランの各オペレータを呼び出します。 各オペレータはこれに対して、SamePhase、NextPhase、またはEndMethod応答でそのステータスを返します。

第1フェーズのメソッドの処理は、オペレータの各インスタンスが、第1フェーズの終了と第2フェーズの開始を意味するNextPhaseステータスを返すまで継続されます。 このフェーズ処理は、オペレータの各インスタンスがEndMethodステータスを返すまで継続されます。この処理に対して許可されるフェーズ数に制限はありません。

プロセス全体が各メソッドについて繰り返され、メソッドごとに、SamePhase、NextPhase、およびEndMethodステータスによってマルチフェーズ コーディネーションの同期点が提供されます。

マルチフェーズ コーディネーション プロトコルは、マスター/スレーブ指向ではないオペレータに対しても使用できます。 すでに述べたように、フェーズ コーディネーション プロセスは、Teradata PTプロセッサではなく、オペレータ自身によって実装および制御されます。 このプロトコルでは、Teradata PTプロセッサを誘導するための適切なステータス戻り値を使用して、オペレータ間で操作を自由にコーディネートできます。
マルチフェーズ コーディネーション プロトコルの使用
メソッド フェーズ マスター オペレータ オブジェクト スレーブ1オペレータ オブジェクト スレーブ2オペレータ オブジェクト
Initiate 1 グローバル変数を割り振る Teradata SQLセッションを作成/接続する Teradata SQLセッションを作成/接続する
LSN(Logon Sequence Number)パーセルを取得するためのTeradata SQLセッションを作成/接続する NextPhaseを返す NextPhaseを返す
LSNパーセルからLSNを抽出する
LSNをグローバル変数として保存する
Teradata SQLセッションを作成/接続する
NextPhaseを返す
2 LSNグローバル変数を使って、Loadセッションを作成/接続する LSNグローバル変数を使って、Loadセッションを作成/接続する LSNグローバル変数を使って、Loadセッションを作成/接続する
NextPhaseを返す EndMethodを返す EndMethodを返す
3 Begin Loadingを発行する
EndMethodを返す
Execute 1 データ ソースからレコードを読み取る データ ソースからレコードを読み取る データ ソースからレコードを読み取る
ファイルの終わりであれば(IF)、NextPhaseを返す

それ以外は(ELSE)、SamePhaseを返す

ファイルの終わりであれば(IF)、EndMethodを返す

それ以外は(ELSE)、SamePhaseを返す

ファイルの終わりであれば(IF)、EndMethodを返す

それ以外は(ELSE)、SamePhaseを返す

2 End Loadingを発行する(ユーザーが指定した場合)
EndMethodを返す
Checkpoint 1 統計をグローバル変数に書き込む 統計をグローバル変数に書き込む 統計をグローバル変数に書き込む
NextPhaseを返す EndMethodを返す EndMethodを返す
2 チェックポイント レコードを再始動ログ ファイルに書き込む
EndMethodを返す
Restart 1 チェックポイント レコードを処理する チェックポイント レコードを処理する チェックポイント レコードを処理する
NextPhaseを返す EndMethodを返す EndMethodを返す
2 再始動の終わりを示すために、再始動ログ ファイルに再始動レコ-ドを書き込む
EndMethodを返す
Terminate 1 Loadセッションを切断する Loadセッションを切断する Loadセッションを切断する
NextPhaseを返す NextPhaseを返す NextPhaseを返す
2 Teradata SQLセッションを切断する Teradata SQLセッションを切断する Teradata SQLセッションを切断する
グローバル変数の割振りを解除する EndMethodを返す EndMethodを返す
EndMethodを返す