目次

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つの入力ソースからのポートを含みます。Integration Serviceが2つの行を結合するためには、これらが一致する必要があります。 選択した結合タイプに応じて、Integration Serviceは行を結果セットに追加するか、または行を無視します。 ジョイナトランスフォーメーションは、結合タイプ、ジョイン条件、および入力データのソースに基づいて結果セットを生成します。
ジョイン条件を定義する前に、マスターソースおよび明細ソースが最適なパフォーマンスに設定されていることを確認してください。Integration Serviceは、セッション中にマスタソースの各行を明細ソースと比較します。 未ソートジョイナトランスフォーメーションのパフォーマンスを高めるには、行の比較的少ないソースをマスターソースとして使用します。ソート済みジョイナトランスフォーメーションのパフォーマンスを高めるには、重複キー値の少ないソースをマスターとして使用します。
デフォルトでは、ジョイナトランスフォーメーションにポートを追加すると、最初のソースパイプラインが明細ソースとして表示されます。2番目のソースパイプラインから追加されたポートは、マスターソースとして設定されます。この設定を変更するには、マスターソースに設定したいポートの[ポート]タブで[M]カラムをクリックします。これにより、このソースのポートがマスターポートとして設定され、他のソースのポートが明細ポートに設定されます。
指定したマスターおよび明細ソースが等しいかどうかに基づいて、1つまたは複数の条件を定義します。たとえばテーブルを含む2つのソース、EMPLOYEE_AGEとEMPLOYEE_POSITIONがあり、どちらも従業員ID番号を含んでいる場合、次の条件は両方のソースに含まれる従業員の行に一致します。
EMP_ID1 = EMP_ID2
ジョイン条件では、ジョイナトランスフォーメーションの入力ソースからの1つ以上のポートを使用します。ポートの数が増えると、2つのソースの結合に要する時間も長くなります。条件内でのポートの順番によって、ジョイナトランスフォーメーションのパフォーマンスに影響を与える場合があります。ジョイン条件で複数のポートを使用する場合、Integration Serviceは指定された順にポートを比較します。
Designerは条件内のデータタイプを検査します。条件の両方のポートは、同じデータタイプを持つ必要があります。データタイプが一致しない2つのポートを条件で使用しなければならない場合、データタイプが一致するように変換します。
CharデータタイプとVarcharデータタイプを結合する場合、Integration ServiceはChar値に埋め込まれている空白の数を文字列の一部として数えます。
Char(40) = "abcd" Varchar(40) = "abcd"
このChar値には"abcd"と36個の空白が埋め込まれています。Charフィールドは後ろに空白が含まれているため、Integration Serviceはこの2つのフィールドを結合しません。
ジョイナトランスフォーメーションは、NULL値の一致は検出しません。例えば、EMP_ID1とEMP_ID2の両方にNULL値を持つ行が含まれている場合、Integration Serviceはこれらを一致とは見なさないため、2つの行の結合は実行されません。 NULL値を持つ行を結合するには、NULL入力をデフォルト値で置き換えてから、デフォルト値で結合します。