[Talend] tDenormalizeコンポーネントを使ってみた

2016.12.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Talendのコンポーネントはたくさんありますが、使ったことないコンポーネントの方が断然多いのです。そこで適当に使ったことないコンポーネントを動かしてみてどんな動きをするのか?を検証してみる 第2段です。
検証バージョンはTalend Open Studio 6.1.0を使っています。

tDenormalizeコンポーネント

説明には

機能 1つのコラムに基づく入力フローを非正規化します。
目的 tDenormalizeは、入力フローを合成するのを助けます。

みたいな感じで書いてあります。
tNormalizeコンポーネントを触ったのでなんとなく動きが想像つきますが、このコンポーネントも実際に使ってみます。

コンポーネントを配置してみる

まずは以下の3つのコンポーネントを使います。

  1. tFileInputDelimited
  2. tDenormalize
  3. tLogRow

下記のようにコンポーネントを配置し、関係線を Row > メインでつなぎます。
CMBlog17_1

使用するサンプルテキストは以下です。

Fathers;Children
pierrick;Erwann
Fabrice;Martin
Stephane;Agathe
pierrick;Tiphaine
Robert;Manon
Stephane;clemence
Richard;Romeo
Mickael;Ocean
pierrick;George

tFileInputDelimitedコンポーネントをクリックして基本設定を開いて読み込むファイル名のパスを設定します。
CMBlog17_2

※TalendのリファレンスガイドにはCSVオプションにチェックが入ってないですが、これを入れておかないと正常に動作しなかったためチェックを入れています。

次に「スキーマの編集」を行います。(下記のようにCOLUMN、キー、タイプ、ヌル可を設定します)

CMBlog17_3_1

次にtDenormalizeコンポーネントをクリックして「カラムの同期」をクリックし、「スキーマの編集」をクリックします。下記のようになっていればOK
CMBlog17_4

以下のように非正規化対象のカラムにChildrenを指定し、区切り文字を";"で同じ値をマージにチェックします
CMBlog17_5

最後にtLogRowコンポーネントをクリックしてモード:テーブルを選んでジョブを保存します。
CMBlog17_6

実行してみる

エラーもなく終了しました。
CMBlog17_7

まとめ

tDenormalizeで非正規化したいカラムを指定することでFathersに対してChildrenが集約されました。このコンポーネントもいつか役立つ日が来れば良いなと思いつつ、今回はこの辺で。