ノーマライザとアグリゲータのマッピング例
あるリレーショナルテーブルに、各店舗の四半期の販売台数が格納されています。各店舗の年間販売台数を計算するには、ノーマライザトランスフォーメーションを使用して各四半期の行を作成します。次に、アグリゲータトランスフォーメーションを使用して各ストアの四半期の販売台数を合計します。
次の図は、作成するマッピングを示しています。
ソースデータには次の行が含まれています。
StoreNo Q1 Q2 Q3 Q4 Year
1001 30 50 48 80 2014
1022 100 120 125 140 2014
1190 80 108 123 134 2014
データがアグリゲータトランスフォーメーションに渡される前に、次のようにノーマライザトランスフォーメーションを使用してソースデータをピボット化します。
StoreNo QuarterlySales
1001 30
1001 50
1001 48
1001 80
1022 100
1022 120
1022 125
1022 140
1190 80
1190 108
1190 123
1190 134
正規化されたフィールドの定義
[正規化されたフィールド]タブで、「QuarterlySales」という名前の正規化されたフィールドを作成します。このフィールドが4つのフィールドであることを示すために、出現回数値を4に設定します。
マッピングに店舗番号データを含めるため、メニューから[受信フィールドから生成]を選択し、[StoreNo]を選択します。このフィールドには複数回出現データは含まれないため、デフォルトの出現回数である1を使用します。
次の画像は、両方のフィールドを追加した後の[正規化されたフィールド]タブを示しています。
QuarterlySalesの出現回数を4に設定すると、ノーマライザによって生成カラムIDフィールドと生成キーフィールドが作成されます。
ノーマライザフィールドマッピングの設定
ノーマライザトランスフォーメーションの[フィールドマッピング]タブで、受信フィールドを正規化されたフィールドに接続します。
[正規化されたフィールド]リストで、ノーマライザによって、複数回出現フィールドQuarterlySalesが、正規化されたデータを保持する対応する各フィールドQuarterlySales_1、QuarterlySales_2、QuarterlySales_3、QuarterlySales_4で置換されます。このリストには、StoreNoフィールドも含まれています。
次の画像に示すとおり、各受信フィールドを正規化されたフィールドStoreNoおよびQuarterlySalesに接続します。
アグリゲータトランスフォーメーションの設定
店舗別の年間売上高を計算するには、マッピングにアグリゲータトランスフォーメーションを追加して、ノーマライザをアグリゲータに接続します。
アグリゲータトランスフォーメーションで、デフォルトの[すべてのフィールド]ルールを使用して、ノーマライザからアグリゲータにすべてのフィールドを渡します。
店舗番号でデータをグループ化するには、[Group By]タブでGroup Byフィールドを追加して、[StoreNo]フィールドを選択します。
次の画像は、[Group By]タブとStoreNoのGroup Byフィールドを示しています。
[集計]タブで、AnnualSales_byStoreという名前の10進数出力フィールドを作成します。出力フィールドを設定するには、次の集計式でQuarterlySalesフィールドを使用します。SUM(QuarterlySales)QuarterlySalesフィールドは、すべての正規化された四半期データを表しています。
次の画像は、[集計]タブとAnnualSales_byStore出力フィールドを示しています。
ターゲットの設定
ターゲットトランスフォーメーションを追加し、アグリゲータトランスフォーメーションをターゲットトランスフォーメーションに接続します。
デフォルトの[すべてのフィールド]ルールを使用して、アグリゲータトランスフォーメーションからターゲットトランスフォーメーションにすべてのフィールドを渡します。
[ターゲット]タブで、ターゲット接続とターゲットオブジェクトを選択します。
[フィールドマッピング]タブの受信フィールドリストには、アグリゲータトランスフォーメーションによって作成されたAnnualSales_byStoreフィールドと、ソースからマッピングを介して渡されたStoreNoフィールドが含まれています。
受信フィールドリストには、QuarterlySalesフィールドとノーマライザによって作成された生成キーカラムも含まれています。これらのフィールドはターゲットに書き出す必要はありません。
StoreNoとAnnualSales_byStoreフィールドを対応するターゲットフィールドに接続します。
次の画像は、設定済みの[フィールドマッピング]タブを示しています。
タスク結果
タスクを実行すると、マッピングタスクによってソースデータが正規化され、四半期ごとに1行が作成されます。正規化されたデータは店舗別にグループ化され、各店舗の四半期ごとの販売台数が集計されます。
次のデータがターゲットに書き出されます。
StoreNo SalesbyStore
1001 208
1022 485
1190 445