[Talend]tSplitRowを利用して行を複数行に分割する
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tSplitRow」を利用した行の分割を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。
tSplitRowについて
「tSplitRow」を利用すると行を複数行に分割することができます。
「tSplitRow」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
ジョブとしては、シンプルなジョブで「tFixedFlowInput」でサンプルレコードを生成し、「tSplitRow」で行を分割して「tLogRow」でログ出力しています。
「tFixedFlowInput」コンポーネントの設定
まず「tFixedFlowInput」に設定したサンプルレコードです。
このサンプルレコードは、「Year」、「Rider1」、「Rider2」の3つのカラムを持った3レコードのサンプルレコードです。「Rider1」と「Rider2」には名前のデータが入っているので、今回はこの2カラムを「Name」にマッピングすることで6レコードに展開されることを期待しています。
「tSplitRow」コンポーネントの設定
「tSplitRow」コンポーネントでは、行をどのように分割するかを「カラムのマッピング」で設定します。今回は「Rider1」と「Rider2」を「Name」にマッピングしたいので、以下のようにマッピングします。
マッピングを行う際はカラム名だけではなく、rowの名前も含めて設定します。今回のサンプルの場合には入力rowの名前を「input」に設定しているので、「input.Rider1」のようになります。
「tLogRow」コンポーネントの設定
「tLogRow」コンポーネントはデフォルトのままで、特に設定していないので割愛します。
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
[statistics] connecting to socket on port 4022 [statistics] connected 2018|ZI-O 2018|Geiz 2017|Build 2017|Cross 2016|Ex-Aid 2016|Brave [statistics] disconnected
期待通り、3レコードが6レコードに分割されました!
まとめ
以上、「tSplitRow」コンポーネントの紹介でした。
カラム名が番号付きで複数あるケース(Name_1, Name_2, Name_3)などは良くあると思いますが、そういったデータを正規化したい場合にうまく活用できるコンポーネントだと思います!
それでは。