目次

Search

  1. はじめに
  2. パフォーマンスのチューニングの概要
  3. ターゲットの最適化
  4. ソースの最適化
  5. トランスフォーメーションの最適化
  6. マッピングの最適化
  7. パーティション化したマッピングの最適化
  8. 実行時の最適化
  9. SQLデータサービスの最適化
  10. Webサービスの最適化
  11. 接続の最適化

パフォーマンスのチューニングの概要

パフォーマンスのチューニングの概要

トランスフォーメーションの副次作用

トランスフォーメーションの副次作用

トランスフォーメーションが行を返し、オブジェクトを変更する場合、またはほかのオブジェクトや関数とやりとりする場合は、副次作用があります。例えば、データベースの変更、合計の加算、例外の生成、電子メールの作成、副次作用がある他の関数の呼び出しなどが行われることがあります。
マッピングを最適化する前に副次作用が発生するトランスフォーメーションはデータ統合サービスで特定されます。 データ統合サービスは、トランスフォーメーションに副次作用があるかを判断できない場合に、トランスフォーメーションに副次作用があると想定します。
トランスフォーメーションに副次作用がある場合、データ統合サービスによるマッピングの最適化が制限されます。 データ統合サービスが副次作用のあるトランスフォーメーションに適用される場合にマッピングの結果が変わるものとして、初期選択、ブランチ刈り込み、グローバル述部最適化、およびプッシュイン最適化があります。初期選択およびプッシュイン最適化では、フィルタトランスフォーメーションのフィルタロジックがソースのできるだけ近くに移動されます。 副次作用の関数の前にフィルタが実行されると、マッピングの結果が変わります。
例えば、顧客IDを受け取り、注文情報を含む行を返すトランスフォーメーションがあるとします。 このトランスフォーメーションでは、さらに、ファイルに注文を書き込みます。 ファイルに注文を書き込む前にデータ統合サービスはフィルタの最適化を適用すると、後でマッピングでフィルタを実行する場合よりも、ファイルで受け取る行数が少なくなります。 このトランスフォーメーションの場合、ファイルに注文レコードを書き込む関数が副次作用になります。
副次作用があるトランスフォーメーションは次のとおりです。
  • SQLトランスフォーメーション、Webサービスコンシューマトランスフォーメーション、Javaトランスフォーメーション(副次作用のプロパティを無効にしていない場合)。
  • ABORT()関数またはERROR()関数の呼び出し、メールの送信、またはストアドプロシージャの呼び出しを実行するトランスフォーメーション。
  • ファイルやデータベースへの書き込みを行うトランスフォーメーション。
  • 変数ポートを使用してカウントを維持するトランスフォーメーション たとえば、COUNT=COUNT+1です。
SQLトランスフォーメーション、Webサービスコンシューマトランスフォーメーション、およびJavaトランスフォーメーションには、デフォルトで副次作用があります。副次作用なしで行を処理するようにトランスフォーメーションを設定するには、
[詳細プロパティ]
[副次作用あり]
プロパティを無効にします。 トランスフォーメーションに副次作用がない場合は、それらのトランスフォーメーションで追加プロパティを設定して最適化を有効にできます。