【Pentaho Lab】Row Normalizer(行正規化)の使い方

 Pentaho(ペンタホ)のETLツール、Kettle(ケトル)のPan(パン)には、Row Normaliser(行正規化)というトランスフォーメーションのステップがあります。本日、使い方を理解できたので、ここに記録しておきたいと思います。

 

参考:http://wiki.pentaho.com/display/EAI/Row+Normalizer

 

Row Normalizer(行正規化)とは

Row Normaliser

 Row Normaliserは、複数列に納まっているデータを1列にまとめるステップです。非正規化な状態のデータを正規化します。

 例えば、次のようなイメージのDBテーブルとデータがあったとします。

Month Product_A Product_B Product_C
2013/4 10 5 17
2013/5 12 7 19

 月別/品目別の売上個数を管理しているテーブルのイメージなのですが、これをRow Normaliserを使用して、次のような感じに変換する事ができます。

Month Product Sales
2013/4 品目A 10

2013/4

品目B 5

2013/4

品目C 17

2013/5

品目A 12

2013/5

品目B 7

2013/5

品目C 19

Row Normaliserの使い方

データグリッドステップで、先の例と同じデータを作成します。

データグリッド
データグリッド
Row Normaliser
Row Normaliser
  • ステップ名…ステップの名称を入力します。
  • フィールド名(タイプ)…正規化して作成するカラム名(フィールド名)を入力します。

【フィールド】

  • フィールド名…正規化する前のデータの正規化したいデータのカラム名(フィールド名)を設定します。"フィールド取得"ボタンを押すと自動的に設定されます。
  • データタイプ…"フィールド名"を値としてデータ化しますので、データ化してフィールドに入力したい値を設定します。
  • フィールド名(新規)…正規化する前のデータで、正規化したいカラム(フィールド)に入力されているデータを格納する新たなカラム(フィールド)を指定します。

 次のような結果になります。

Row Normaliserの結果
Row Normaliserの結果

Row Normaliserの使い方の例

 次のような正規化されていない品目の売上数量と売上金額が入っているデータがあったとします。

 Row Normaliserに下記のような設定をします。

Row Normaliser
Row Normaliser

 次のような結果になります。