[Talend]tReplicateを利用してrowを複製する

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tReplicate」を利用したrowの複製を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。

tReplicateについて

「tReplicate」を利用するとファイルの作成を行うことができます。

「tReplicate」コンポーネントのTalend Helpページはこちらです。

tReplicate

では、具体的に以下で解説していきます。

ジョブの説明

「tFixedFlowInput」でサンプルレコードを生成し、「tReplicate」でrowを3つに複製して「tLogRow」で確認するジョブとなっています。

「tFixedFlowInput」コンポーネントの設定

「tFixedFlowInput」コンポーネントでは、以下のようなサンプルレコードを1レコード生成しています。

「tReplicate」コンポーネントの設定

以下のとおりコンポーネント自体に特に設定項目はありません。

コンポーネントの利用方法として、まずは複製したい入力のrowを繋げて、その後は通常通りコンポーネントを右クリックして「ロウ > メイン」のrowを出力側のコンポーネントに繋げます。通常では「メイン」出力は1つしか利用できませんが、このコンポーネントでは何度も利用が可能です。

今回は3つ出力をしてみます。なお、出力される順番はrowのラベルにorder: 1などと表示されるので、表示されている数値で出力される順番が判断できます。

「tLogRow」コンポーネントの設定

出力結果を分かりやすくするため、「モード」を「テーブル」に設定してコンポーネント名が表示されるようにしました。

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3825
[statistics] connected
.----+----.
|tLogRow_1|
|=---+---=|
|Year|Name|
|=---+---=|
|2018|ZI-O|
'----+----'

.----+----.
|tLogRow_2|
|=---+---=|
|Year|Name|
|=---+---=|
|2018|ZI-O|
'----+----'

.----+----.
|tLogRow_3|
|=---+---=|
|Year|Name|
|=---+---=|
|2018|ZI-O|
'----+----'

[statistics] disconnected

各LogRowコンポーネントに複製されたrowが出力されていますね!なお、入力が複数レコードの場合は、出力先コンポーネント毎に複数レコード処理がされます。この場合だとtLogRow_1に複数レコードが表示された後にtLogRow_2の出力が始まるという流れです。

まとめ

以上、「tReplicate」コンポーネントの紹介でした。

「入力データは1つのrowだけど、複数の出力先にしたい!」というケースなどに活用できるコンポーネントだと思います。

それでは!