目次

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トランスフォーメーション

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

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

デフォルトジョイン

デフォルトジョイン

1つのソース修飾子トランスフォーメーション内で関連テーブルを結合する場合、Integration Serviceでは各テーブル内の関連キーに基づいてテーブルが結合されます。
このデフォルトジョインは、WHERE句に次の構文を使用するインナージョインと等価です。
Source1.column_name = Source2.column_name
デフォルトジョインで使用するカラムに対しては次の要件があります。
  • プライマリキーと外部キーの関係
  • 一致するデータタイプ
たとえばある月におけるすべての注文をその注文番号、注文数量、顧客名を含めて調べたいとします。ここで、ORDERSテーブルには注文番号と注文数量のデータがありますが、顧客名のデータが入っていないとします。顧客名を取得するためには、ORDERSテーブルとCUSTOMERSテーブルを結合しなければなりません。両方のテーブルにはカスタマIDが入っているため、この2つのテーブルを1つのソース修飾子トランスフォーメーションで結合することができます。
以下の図に、1つのソース修飾子トランスフォーメーションを使用して2つのテーブルを結合する例を示します。
マッピングはソース修飾子トランスフォーメーションと式トランスフォーメーションという2つのソースを示します。ソースおよびソース修飾子トランスフォーメーションが開いてポート名とデータ型を表示します。 式トランスフォーメーションが開いて、ポート名と式を表示します。
複数のテーブルを取り込むと、Integration Serviceはマッピング内で使用されているすべてのカラムに対するSELECT文を生成します。 この場合のSELECT文は次のようになります。
SELECT CUSTOMERS.CUSTOMER_ID, CUSTOMERS.COMPANY, CUSTOMERS.FIRST_NAME, CUSTOMERS.LAST_NAME, CUSTOMERS.ADDRESS1, CUSTOMERS.ADDRESS2, CUSTOMERS.CITY, CUSTOMERS.STATE, CUSTOMERS.POSTAL_CODE, CUSTOMERS.PHONE, CUSTOMERS.EMAIL, ORDERS.ORDER_ID, ORDERS.DATE_ENTERED, ORDERS.DATE_PROMISED, ORDERS.DATE_SHIPPED, ORDERS.EMPLOYEE_ID, ORDERS.CUSTOMER_ID, ORDERS.SALES_TAX_RATE, ORDERS.STORE_ID FROM CUSTOMERS, ORDERS WHERE CUSTOMERS.CUSTOMER_ID=ORDERS.CUSTOMER_ID
このWHERE句は、ORDERSテーブルとCUSTOMERテーブルのCUSTOMER_IDを取り込む等価結合です。