[Talend]tSampleRowを利用してrowをサンプリングする

はじめに

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

今回はTalendのコンポーネント「tSampleRow」を利用したrowのサンプリングを紹介したいと思います。

前提条件

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

tSampleRowについて

「tSampleRow」を利用すると入力rowデータのうち、指定した行番号のrowを取得することができます。

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

tSampleRow

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

ジョブの説明

「tFixedFlowInput」でサンプルレコードを生成し、「tSampleRow」で指定した行番号のrowを取得して、結果を「tLogRow」で表示するジョブとなっています。

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

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

スキーマ定義は以下の通りNoカラム、Yearカラム、Nameカラムの3カラムのスキーマです。行番号を分かりやすくするため、Noカラムに行番号と同じ値を設定しました。

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

「tSampleRow」コンポーネントの設定は以下の通りです。

範囲

コンポーネントの設定画面に英語で記載されていますが、以下のように行番号を設定することで指定した行を取得することが可能です。

"1..3,6,9..10"

今回の例だと、1~3,6,9~10行目のデータを取得することになります。

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

こちらは特に設定を行っていないので省略します。

実行結果

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

[statistics] connecting to socket on port 3669
[statistics] connected
1|2018|Zi-O
2|2017|Build
3|2016|Ex-Aid
6|2013|Gaim
9|2010|OOO
10|2009|W
[statistics] disconnected

「tSampleRow」で指定した行番号のデータのみ出力されました!

まとめ

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

巨大なファイルから指定行のデータだけ取得したいという場合などに活用できるコンポーネントではないでしょうか。

それでは!