ソータートランスフォーメーションの例
顧客売上の請求書を顧客データベースから作成する必要があるとします。顧客売上オブジェクトのソータートランスフォーメーションを使用し、注文番号に従ってデータを昇順にソートします。ソータートランスフォーメーションの結果をアグリゲータトランスフォーメーションに対する入力として使用します。[ソート済み受信フィールド]オプションを使用して、アグリゲータトランスフォーメーションのパフォーマンスを向上させることができます。
Product_Ordersテーブルには、顧客が行ったすべての注文に関する情報が含まれています。
OrderID | ItemID | Item | Quantity | Price |
---|
43 | 123456 | ItemA | 3 | 3.04 |
41 | 456789 | ItemB | 2 | 12.02 |
43 | 000246 | ItemC | 6 | 34.55 |
45 | 000468 | ItemD | 5 | 0.56 |
43 | NULL | ItemE | 1 | 0.75 |
41 | 123456 | ItemA | 4 | 3.04 |
45 | 123456 | ItemA | 5 | 3.04 |
45 | 456789 | ItemB | 3 | 12.02 |
Mapping Designerで、Product_Ordersをソースオブジェクトとして追加します。
ソータートランスフォーメーションをマッピングキャンバスに追加し、それをデータフローに接続します。オーダーIDと項目IDで製品の注文をソートします。
次の図に、オーダーIDフィールドと項目IDフィールドが降順にソートされるよう設定されているソート条件を示します。
マッピングタスクでNULL値が他の値よりも低い値として扱われるように、NULLを下として扱うソートを有効にします。
次の図に、[NULLを下として扱う]オプションが選択されているソータートランスフォーメーションの詳細プロパティを示します。
マッピングタスクは、データをソートした後で次の行をソータートランスフォーメーションから渡します。
OrderID | ItemID | Item | Quantity | Price |
---|
45 | 456789 | ItemB | 3 | 12.02 |
45 | 123456 | ItemA | 5 | 3.04 |
45 | 000468 | ItemD | 5 | 0.56 |
43 | 123456 | ItemA | 3 | 3.04 |
43 | 000246 | ItemC | 6 | 34.55 |
43 | NULL | ItemE | 1 | 0.75 |
41 | 456789 | ItemB | 2 | 12.02 |
41 | 123456 | ItemA | 4 | 3.04 |
注文ごとの合計金額と数量を特定する必要があります。ソータートランスフォーメーションの結果をアグリゲータトランスフォーメーションへの入力として使用し、パフォーマンスを向上させることができます。アグリゲータトランスフォーメーションをマッピングに追加し、アグリゲータトランスフォーメーションをデータフローに接続します。アグリゲータトランスフォーメーションのフィールドをオーダーIDでグループ化し、注文金額を合計する式を追加します。
ソータートランスフォーメーションからデータを渡すと、アグリゲータトランスフォーメーションはオーダーIDをグループ化して、注文ごとの合計金額を計算します。
OrderID | Sum |
---|
45 | 54.06 |
43 | 217.17 |
41 | 36.2 |
すべての注文の合計を格納するデータウェアハウスのオブジェクトに注文の概要を書き込みます。
マッピングタスクは、ソースから注文データを読み取り、注文をソートして金額を合計し、データをターゲットに書き込みます。
次の図に、データフローのマッピングを示します。