Informatica でのトランザクション制御変換 (例)
⚡ スマートサマリー
Informatica のトランザクション制御変換は、行をコミットまたはロールバックするアクティブな接続オブジェクトであり、マップはping 実行時には、各行に対して一度評価される条件の中に5つの組み込み変数を使用します。

トランザクション制御変換とは何ですか?
トランザクション制御は、マップの実行中にトランザクションをコミットまたはロールバックできる、アクティブで接続された変換です。pingコミットとロールバック操作は、データの可用性を保証するため、非常に重要です。
大量のデータを処理する際には、データをターゲットにコミットする必要がある状況が発生する場合があります。コミットが頻繁に行われると、システムにオーバーヘッドが発生します。一方、コミットが遅すぎると、障害発生時にデータ損失のリスクが高まります。
そのため、柔軟性を持たせるためにトランザクション制御変換が提供されています。コミットポイントをセッションのデフォルトに任せるのではなく、内部の条件を 地図ping 行ごとに、ある取引がどこで終わり、次の取引がどこで始まるかを決定する。
TCLのコミットおよびロールバックコマンド
この変換処理には、操作を処理するための組み込み変数が5つ用意されています。条件は各行に対して、これら5つのうちいずれか1つを返す必要があり、リスト外の値を返すと、インテグレーションサービスはセッションを失敗させます。
TC_CONTINUE_TRANSACTION
TC_CONTINUE_TRANSACTIONでは、何も操作は実行されず、データロード処理はそのまま継続されます。これは式のデフォルト値です。
TC_COMMIT_BEFORE
TC_COMMIT_BEFORE において、このフラグが設定されている場合、現在の行の処理前にコミットが実行されます。その後、新しいトランザクションが開始され、現在の行がターゲットに書き込まれます。
TC_COMMIT_AFTER
TC_COMMIT_AFTERでは、現在の行が処理された後、コミットが実行され、次のトランザクションが開始されます。
TC_ROLLBACK_BEFORE
TC_ROLLBACK_BEFOREでは、まずロールバックが実行され、その後データが処理されて書き込まれます。
TC_ROLLBACK_AFTER
TC_ROLLBACK_AFTERでは、データが処理された後、ロールバックが実行されます。
トランザクション制御変換プロパティ
オブジェクトの設定は、「変換の編集」ウィンドウから行います。このウィンドウには、他のPowerCenter変換と同様に4つのタブがあります。どのタブにどの設定項目があるかを把握しておくと、以下の手順で探す手間が省けます。
| タブ | そこに何が設定されているか |
| 変換 | 変換の名前、その説明、およびオブジェクトが再利用可能になるかどうか。 |
| ポート | 入力ポートと出力ポートは、通常、上流の変換処理から列をドラッグインすることで作成されます。 |
| 特性 | トランザクション制御条件は、フィールドの横にある小さな矢印で開き、 Tracセッションログにレベルが書き込まれました。 |
| メタデータ拡張 | ユーザー定義のメタデータは、変換処理とともにリポジトリに保持されます。 |
2つの設定が実際の作業を行います。 取引制御条件 式を保持します。これは通常、5 つの変数のいずれかを返す IIF() テストです。 Tracレベル 実行内容を調査する際に、変換に関する詳細情報がセッションログにどの程度表示されるかを決定します。
1つの設定は変換の外側にあります。地図ping 効果的なトランザクション制御変換が含まれているため、セッションは コミットタイプ プロパティタブで「ユーザー定義」に設定 セッション、代わりに Target または、固定コミット間隔を使用するソースコミットタイプ。
Informaticaでトランザクション制御変換を使用する方法
この例では、部門番号が20であるという条件が真であると判断された場合に、ターゲットにデータをコミットします。
ステップ1) マップを作成するping EMPをソース、EMP_TARGETをターゲットとするマップ。ping デザイナーキャンバスには、ソース、そのソース修飾子、およびターゲット定義が格納されます。
ステップ2) 「変換」メニューを使用して新しい変換を作成し、「変換の作成」ウィンドウで次の操作を行います。
- 新しい変換としてトランザクション制御を選択します。
- 変換名「tc_commit_dept20」を入力します
- 作成オプションを選択
ステップ3) トランザクション制御変換が作成されますので、「完了」ボタンを選択してください。新しいオブジェクトがキャンバス上のソース修飾子の横に表示されます。
ステップ4) ソース修飾子からトランザクション制御変換にすべての列をドラッグアンドドロップし、トランザクション制御変換からターゲットテーブルにすべての列をリンクします。これでパイプラインはソース → ソース修飾子 → tc_commit_dept20 → EMP_TARGET の順に実行されます。
ステップ5) Double トランザクション制御変換をクリックし、プロパティ編集ウィンドウで以下を実行します。
- プロパティタブを選択
- トランザクション制御エディターのアイコンをクリックします。
ステップ6) 式エディタに次の式を入力します –
iif(deptno=20,tc_commit_before,tc_continue_transaction)
「OK」を選択してください。これは、部門番号20が見つかった場合はターゲットでトランザクションをコミットし、見つからなかった場合は現在の処理を続行することを意味します。
ステップ7) 前のウィンドウで「OK」を選択してください。これで、条件が変換の「プロパティ」タブに保存されました。
これでマップを保存できますping セッションとワークフローを作成した後、それを実行します。このマップping データ内に部門番号20が見つかった場合、そのデータをターゲットにコミットします。
効果的な取引管理変革と非効果的な取引管理変革
この変換処理はトランザクション生成器です。上流から送られてくるトランザクション境界をすべて破棄し、下流のすべてのトランザクションに対して独自の新しい境界を定義します。そのため、パイプライン内での位置は、その状態と同じくらい重要になります。
それが呼び出されます 効果的な ターゲットに対して、それが作成する境界がまだそのターゲットに到達している場合、 効果のない 後続の変換処理でこれらの境界が破棄される場合。Informatica PowerCenter変換ガイドによると、以下のオブジェクトは受信トランザクション境界を破棄します。
- アグリゲーター、 ジョイナー, ランクソーターまたは変換スコープが「すべての入力」であるカスタム変換
- トランザクションを生成するように構成されたカスタム変換
- トランザクション制御の別の変革
- 複数の入力グループ変換が、複数の上流トランザクション制御ポイントに接続されている。
対象に対して効果がないからといって、オブジェクトが無用になるわけではありません。変換スコープがトランザクションである下流の変換は、上流で定義された境界を依然として使用するため、同じ変換でもソーターに対しては効果的でも、その背後にあるテーブルに対しては効果がない場合があります。
地図上でping 複数のターゲットがある場合、オブジェクトは1つのターゲットには効果的でも、別のターゲットには効果がない可能性があります。マップping マップは、すべてのターゲットが有効なトランザクション制御変換に接続されている間は有効であり、いずれかのターゲットが接続されていないとすぐに無効になります。デザイナは、マップが無効なときにターゲットに対してどの変換が無効であるかを報告します。ping 保存または検証されます。
取引管理変革に関する規則とガイドライン
この変換に関する問題のほとんどは、設計時ではなく実行時に発生するため、セッションを構築する前に以下の点を確認しておく価値があります。
- 戻り値は厳密です。 条件がコミット、ロールバック、または続行以外の値に評価された場合、インテグレーションサービスはセッションを失敗とします。
- TC_CONTINUE_TRANSACTION はフォールバックです。 IIF() のすべての分岐はどこかで終了する必要があり、continue は現在のトランザクションを変更しない値です。
- 対象の種類が重要です。 トランザクション制御変換は、リレーショナル、XML、または動的MQSeriesターゲット以外のターゲットに接続されている場合、そのターゲットに対しては効果がありません。
- その条件は、到達したものしか利用できない。 トランザクション制御エディタ内で使用できるのは、変換にリンクされたポート、その変数ポート、および組み込み変数のみです。
- コミット頻度はトレードオフの関係にある。 ほぼすべての行でコミットされる条件はバッファリングの利点を失わせ、ほとんど発生しない条件は変換によって解消しようとしたデータ損失の期間を再び招き入れることになる。
- セッションログを確認してください。 ログには実際に実行されたコミットポイントが記録され、これは条件が意図どおりに動作したことを確認する最も迅速な方法です。 性能調整.





![トランザクション制御エディタのアイコンが表示されている、[変換の編集] ウィンドウの [プロパティ] タブ](https://www.guru99.com/images/informatica/083115_1218_Transaction5.png)

