目次

Search

  1. はじめに
  2. トランスフォーメーションに関する作業
  3. アグリゲータトランスフォーメーション
  4. カスタムトランスフォーメーション
  5. カスタムトランスフォーメーション関数
  6. データマスキングトランスフォーメーション
  7. データマスキングの例
  8. 式トランスフォーメーション
  9. エクスターナルプロシージャトランスフォーメーション
  10. フィルタトランスフォーメーション
  11. HTTPトランスフォーメーション
  12. ID解決トランスフォーメーション
  13. Javaトランスフォーメーション
  14. JavaトランスフォーメーションAPIのリファレンス
  15. Java式
  16. Javaトランスフォーメーションの例
  17. ジョイナトランスフォーメーション
  18. ルックアップトランスフォーメーション
  19. ルックアップキャッシュ
  20. 動的ルックアップキャッシュ
  21. ノーマライザトランスフォーメーション
  22. ランクトランスフォーメーション
  23. ルータトランスフォーメーション
  24. シーケンスジェネレータトランスフォーメーション
  25. ソータトランスフォーメーション
  26. ソース修飾子トランスフォーメーション
  27. SQLトランスフォーメーション
  28. マッピングにおけるSQLトランスフォーメーションの使用
  29. ストアドプロシージャトランスフォーメーション
  30. トランザクション制御トランスフォーメーション
  31. 共有体トランスフォーメーション
  32. 構造化されていないデータのトランスフォーメーション
  33. アップデートストラテジトランスフォーメーション
  34. XMLトランスフォーメーション

トランスフォーメーションガイド

トランスフォーメーションガイド

同じパイプラインの2つのブランチの結合

同じパイプラインの2つのブランチの結合

同じソースからのデータを結合するときには、パイプラインの2つのブランチを作成します。パイプラインをブランチに分岐する場合は、パイプラインの少なくとも片方のブランチの、ソース修飾子とジョイナトランスフォーメーションの間にトランスフォーメーションを追加する必要があります。ソート済みデータを結合し、ジョイナトランスフォーメーションをソート済み入力用に設定する必要があります。
たとえば、以下のポートを含むソースがあるとします。
  • Employee
  • 部門
  • Total Sales
ターゲットに、所属する部署の平均売上を超える売上を実現した従業員を表示するとします。そのためには、以下のトランスフォーメーションを含むマッピングを作成します。
  • ソータトランスフォーメーション
    。 データをソートします。
  • ソート済みアグリゲータトランスフォーメーション
    。 売上データの平均を算出し、部署ごとにグループ化します。この集計を実行すると、個々の従業員のデータは失われます。従業員データを維持するには、パイプラインのブランチをアグリゲータトランスフォーメーションに渡し、同じデータのブランチをジョイナトランスフォーメーションに渡して元のデータを維持する必要があります。パイプラインの両方のブランチを結合すると、集計済みデータと元のデータを結合することになります。
  • ソート済みジョイナトランスフォーメーション
    . ソート済みジョイナトランスフォーメーションを使用して、ソート済みの集計データと元のデータを結合します。
  • フィルタトランスフォーメーション
    。 平均売上データと各従業員の売上データを比較し、平均売上に達していない従業員を除外します。
以下の図に、同じパイプラインの2つのブランチを結合するマッピングを示します。
""
カスタムトランスフォーメーションやXMLソース修飾子トランスフォーメーションなどの同じトランスフォーメーションの出力グループからのデータを結合することもできます。各出力グループとジョイナトランスフォーメーションの間にソータトランスフォーメーションを配置して、ジョイナトランスフォーメーションがソート済みの入力を受け取れるように設定します。
ジョイナトランスフォーメーションが一方のブランチからのデータを受け取るのが、もう一方のブランチより大きく遅れる場合、2つのブランチの結合がパフォーマンスに影響を与えることがあります。ジョイナトランスフォーメーションは、最初のブランチからのすべてのデータをキャッシュに格納し、キャッシュがいっぱいになるとキャッシュをディスクに書き込みます。次にジョイナトランスフォーメーションが2番目のブランチからデータを受け取るときに、ディスクからデータを読み込む必要があります。この処理に時間がかかる場合があります。