[Talend]tFlowToIterateを利用してFlowをIterateに変換する
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tFlowToIterate」を利用したFlowのIterateへの変換を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。
tFlowToIterateについて
「tFlowToIterate」を利用するとFlowをIterateへ変換することができます。
「tFlowToIterate」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
ジョブとしては「tFixedFlowInput」でサンプルレコードを生成し、「tFlowToIterate」でFlowをIterateへ変換して「tJava」で標準出力に反復して結果を出力しています。
「tFixedFlowInput」コンポーネントの設定
「tFixedFlowInput」は以下のように設定しました。サンプルレコードとしてYear
とName
の2カラムを持つ3レコードを用意しています。
「tFlowToIterate」コンポーネントの設定
「tFlowToIterate」は実は設定することはほぼありません。以下のようにデフォルトでは「グローバル変数にデフォルト(キー、値)を使用」が有効になっているのでそのまま利用します。
なお、デフォルトを利用したくない場合には、無効にして以下のようにカスタマイズすることも可能です。
「tJava」コンポーネントの設定
「tJava」コンポーネントでは、以下のようにtFlowToIterate.XXXXX
を指定してIterateに変換されたカラムを標準出力に表示させます。以下のようにデフォルトの場合にはrowの名前とカラム名をドットで区切ったものがキーとなります。
System.out.println("Year: " + ((Integer)globalMap.get("row1.Year"))); System.out.println("Name: " + ((String)globalMap.get("row1.Name")));
なお、コードは以下のようにtFlow
などと入力してCtrl+Spaceを入力するとダイアログが表示されるのでtFlowToIterate.Year
などを選択すると自動入力されます。
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
[statistics] connecting to socket on port 4034 [statistics] connected Year: 2016 Name: Ex-Aid Year: 2017 Name: Build Year: 2018 Name: ZI-O [statistics] disconnected
サンプルレコードが反復して出力されていますね。
まとめ
以上、「tFlowToIterate」コンポーネントの紹介でした。
各レコードの情報を利用して反復処理をさせたいということは割とあると思いますので、よく利用するコンポーネントだと思います。
それでは。