Hi, I'm Ask INFA!
What would you like to know?
ASK INFAPreview
Please to access Ask INFA.

目次

Search

  1. はじめに
  2. トランスフォーメーション
  3. ソーストランスフォーメーション
  4. ターゲットトランスフォーメーション
  5. アクセスポリシートランスフォーメーション
  6. アグリゲータトランスフォーメーション
  7. B2Bトランスフォーメーション
  8. チャンキングトランスフォーメーション
  9. クレンジングトランスフォーメーション
  10. データマスキングトランスフォーメーション
  11. データサービストランスフォーメーション
  12. 重複排除トランスフォーメーション
  13. 式トランスフォーメーション
  14. フィルタトランスフォーメーション
  15. 階層ビルダートランスフォーメーション
  16. 階層パーサートランスフォーメーション
  17. 階層プロセッサトランスフォーメーション
  18. 入力トランスフォーメーション
  19. Javaトランスフォーメーション
  20. JavaトランスフォーメーションAPIリファレンス
  21. ジョイナトランスフォーメーション
  22. ラベラトランスフォーメーション
  23. ルックアップトランスフォーメーション
  24. 機械学習トランスフォーメーション
  25. マップレットトランスフォーメーション
  26. ノーマライザトランスフォーメーション
  27. 出力トランスフォーメーション
  28. 解析トランスフォーメーション
  29. Pythonトランスフォーメーション
  30. ランクトランスフォーメーション
  31. ルータトランスフォーメーション
  32. ルール仕様トランスフォーメーション
  33. シーケンストランスフォーメーション
  34. ソータートランスフォーメーション
  35. SQLトランスフォーメーション
  36. 構造パーサートランスフォーメーション
  37. トランザクション制御トランスフォーメーション
  38. 共有体トランスフォーメーション
  39. ベクトル埋め込みトランスフォーメーション
  40. Velocityトランスフォーメーション
  41. ベリファイヤトランスフォーメーション
  42. Webサービストランスフォーメーション

トランスフォーメーション

トランスフォーメーション

ノーマライザとアグリゲータのマッピング例

ノーマライザとアグリゲータのマッピング例

あるリレーショナルテーブルに、各店舗の四半期の販売台数が格納されています。各店舗の年間販売台数を計算するには、ノーマライザトランスフォーメーションを使用して各四半期の行を作成します。次に、アグリゲータトランスフォーメーションを使用して各ストアの四半期の販売台数を合計します。
次の図は、作成するマッピングを示しています。
このマッピングでは、ソーストランスフォーメーションにノーマライザトランスフォーメーションが接続され、それがアグリゲータトランスフォーメーション、そしてターゲットトランスフォーメーションに接続されています。
ソースデータには次の行が含まれています。
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を使用します。
次の画像は、両方のフィールドを追加した後の
[正規化されたフィールド]
タブを示しています。
[正規化されたフィールド]タブには、2つの追加されたフィールドとGCID_QuarterlySalesフィールドおよびGK_QuarterlySalesフィールドが含まれています。
QuarterlySalesの出現回数を4に設定すると、ノーマライザによって生成カラムIDフィールドと生成キーフィールドが作成されます。

ノーマライザフィールドマッピングの設定

ノーマライザトランスフォーメーションの
[フィールドマッピング]
タブで、受信フィールドを正規化されたフィールドに接続します。
[正規化されたフィールド]
リストで、ノーマライザによって、複数回出現フィールドQuarterlySalesが、正規化されたデータを保持する対応する各フィールドQuarterlySales_1、QuarterlySales_2、QuarterlySales_3、QuarterlySales_4で置換されます。このリストには、StoreNoフィールドも含まれています。
次の画像に示すとおり、各受信フィールドを正規化されたフィールドStoreNoおよびQuarterlySalesに接続します。
[フィールドマッピング]タブには、ソースフィールドと正規化されたフィールドが、Q1とQuarterlySales_1、Q2とQuarterlySales_2、Q3とQuarterlySales_3、Q4とQuarterlySales_4、StoreNoとStoreNoのように接続されて表示されます。

アグリゲータトランスフォーメーションの設定

店舗別の年間売上高を計算するには、マッピングにアグリゲータトランスフォーメーションを追加して、ノーマライザをアグリゲータに接続します。
アグリゲータトランスフォーメーションで、デフォルトの[すべてのフィールド]ルールを使用して、ノーマライザからアグリゲータにすべてのフィールドを渡します。
店舗番号でデータをグループ化するには、
[Group By]
タブでGroup Byフィールドを追加して、
[StoreNo]
フィールドを選択します。
次の画像は、
[Group By]
タブとStoreNoのGroup Byフィールドを示しています。
[Group By]タブには、Group ByフィールドとしてStoreNoが表示されます。
[集計]
タブで、AnnualSales_byStoreという名前の10進数出力フィールドを作成します。出力フィールドを設定するには、次の集計式でQuarterlySalesフィールドを使用します。
SUM(QuarterlySales)
QuarterlySalesフィールドは、すべての正規化された四半期データを表しています。
次の画像は、
[集計]
タブとAnnualSales_byStore出力フィールドを示しています。
[集計]タブには、AnnualSales_byStore出力フィールドと集計式が表示されます。

ターゲットの設定

ターゲットトランスフォーメーションを追加し、アグリゲータトランスフォーメーションをターゲットトランスフォーメーションに接続します。
デフォルトの[すべてのフィールド]ルールを使用して、アグリゲータトランスフォーメーションからターゲットトランスフォーメーションにすべてのフィールドを渡します。
[ターゲット]
タブで、ターゲット接続とターゲットオブジェクトを選択します。
[フィールドマッピング]
タブの受信フィールドリストには、アグリゲータトランスフォーメーションによって作成されたAnnualSales_byStoreフィールドと、ソースからマッピングを介して渡されたStoreNoフィールドが含まれています。
受信フィールドリストには、QuarterlySalesフィールドとノーマライザによって作成された生成キーカラムも含まれています。これらのフィールドはターゲットに書き出す必要はありません。
StoreNoとAnnualSales_byStoreフィールドを対応するターゲットフィールドに接続します。
次の画像は、設定済みの
[フィールドマッピング]
タブを示しています。
ターゲットトランスフォーメーションの[フィールドマッピング]タブには、ターゲットのStoreNoフィールドにマッピングされたアグリゲータトランスフォーメーションのStoreNoフィールドと、SalesbyStoreフィールドにマッピングされたAnnualSales_byStoreフィールドが表示されます。

タスク結果

タスクを実行すると、
マッピング
タスクによってソースデータが正規化され、四半期ごとに1行が作成されます。正規化されたデータは店舗別にグループ化され、各店舗の四半期ごとの販売台数が集計されます。
次のデータがターゲットに書き出されます。
StoreNo SalesbyStore
1001 208 1022 485 1190 445