トランスフォーメーション > ソータートランスフォーメーション > ソータートランスフォーメーションの例
  

ソータートランスフォーメーションの例

顧客売上の請求書を顧客データベースから作成する必要があるとします。顧客売上オブジェクトのソータートランスフォーメーションを使用し、注文番号に従ってデータを昇順にソートします。ソータートランスフォーメーションの結果をアグリゲータトランスフォーメーションに対する入力として使用します。[ソート済み受信フィールド]オプションを使用して、アグリゲータトランスフォーメーションのパフォーマンスを向上させることができます。
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フィールドが降順にソートされるよう設定されているソート条件を示します。
[ソータートランスフォーメーション]の[ソート]タブの[OrderID]フィールドと[ItemID]フィールドは、降順で並べ替えるように設定されています。
マッピングタスクでNULL値が他の値よりも低い値として扱われるように、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
すべての注文の合計を格納するデータウェアハウスのオブジェクトに注文の概要を書き込みます。
マッピングタスクは、ソースから注文データを読み取り、注文をソートして金額を合計し、データをターゲットに書き込みます。
次の図に、データフローのマッピングを示します。
マッピングには、ソースからソータートランスフォーメーションへのデータフローが表示されています。ソータートランスフォーメーションは、アグリゲータトランスフォーメーションに、さらにターゲットにリンクされています。