Talend チュートリアル(How to sort a file)

Talend Communityに紹介されているチュートリアルを実行し、Talendの雰囲気を つかんでみたいと思います。

今回、実行してみるチュートリアルは、顧客情報の入ったCSVファイルの中身を顧客名順に並べ替え 出力するといった内容です。

最初に顧客情報が入ったCSVファイルを「http://www.talendforge.org/tutorials/data/tuto001/001.zip」からダウンロードして チュートリアルを実行できる準備をします。 (How to sort a fileのexampleFile.zip)

サンプルファイルの中は、次のようになっており区切り文字(デリミタ)が「;(セミコロン)」で作成されています。

/************************************************************/;;;;;;;;
/*******  Extract on Mon Oct 02 10:30:19 CEST 2006  ****************/;;;;;;;;
/************************************************************/;;;;;;;;


id;CustomerName;CustomerAddress;idState;id2;RegTime;RegisterTime;Sum1;Sum2
1;Griffith Paving and Sealcoatin;talend@apres91;7;41;03/11/2006 09:20;2001-01-17 06:26:40.000;67852;61521.4852
2;Bill's Dive Shop;511 Maple Ave.  Apt. 1B;35;5;19/11/2004 15:48;2002-06-07 09:40:00.000;88792;15434.1000

ジョブの作成

リポジトリビューの「ジョブ」を右クリックし、「ジョブの作成」をクリックします。

ジョブの作成

ダイアログが表示されるのでジョブの名称を入力します。ここでは、「howToSortFile」としました。

新規ジョブ

設定が完了すると、ジョブのデザインビューが表示されます。

ジョブデザインビュー

CSVファイルからデータを入力するコンポーネントの配置

Talendには、様々な部品(コンポーネント)が用意されています。ここでは、CSVファイルから データを入力するためのコンポーネントを使用していきます。

パレットビュー

デフォルトのレイアウトでは、画面右端にあるパレットビューの中から「ファイル」-「ファイル入力」をクリックし 「tFileInputDelimited」を選択します。選択後、デザインエリアをクリックするか、「tFileInputDelimited」を デザインエリアへドロップします。

tFileInputDelimitedコンポーネントの配置

配置したコンポーネントのアイコン(絵の部分)をダブルクリックすると画面下部のコンポーネントタブがアクティブに なります。「ファイル名/ストリーム」に入力元のファイルを指定し、スキーマの編集を行います。

ここでは、事前にダウンロードしておいたサンプルファイルを「c:\work\src\」へ展開し、「ファイル名/ストリーム」 には、「c:\work\src\customer.csv」と設定しています。

入力ファイル設定

サンプルファイルの項目数は、9項目あるので「+」ボタンを9回クリックし項目定義の準備をします。

項目定義の準備

追加した項目に項目名とサイズを設定していきます。

COLUMN 長さ
id 9
CustomerName 255
CustomerAddress 255
idState 2
id2 2
RegTime 30
RegisterTime 30
Sum1 10
Sum2 10

スキーマの設定

ここまでで、CSVファイルからのデータ入力設定は完了です。

CSVファイルへデータを出力するコンポーネントの配置

変換後のファイルを出力するための、コンポーネントを配置していきます。

画面右端にあるパレットビューの中から「ファイル」-「ファイル出力」をクリックし 「tFileOutputDelimited」を選択します。選択後、デザインエリアをクリックするか、「tFileOutputDelimited」を デザインエリアへドロップします。

tFileOutputDelimitedコンポーネントの配置

コンポーネントタブの基本設定にファイルの出力先を設定し、項目名が必要な場合はヘッダーを含むにチェックを入れます。

ここでは、「ファイル名」に「c:\work\dest\out.csv」と設定しています。

出力ファイル設定

ここまでで、CSVファイルへのデータ出力設定は完了です。

データを並べ替えるコンポーネントの配置

パレットビューの中から「変換処理」をクリックし「tSortRow」を選択します。選択後、デザインエリアへ「tSortRow」コンポーネントを 配置します。

tSortRowコンポーネントの配置

配置した3つのコンポーネントを関連付けていきます。

「tFileInputDelimited」コンポーネントのアイコンを右クリックし、ドラッグして「tSortRow」まで 引っ張ります。これにより「tFileInputDelimited」コンポーネントと「tSortRow」コンポーネントが 矢印で結ばれます。

関連付けのもう一つの方法で、「tSortRow」コンポーネントを右クリックし表示されたポップアップメニューから 「Row」-「メイン」と選択します。「tSortRow」コンポーネントから線が引かれるので行先となる 「tFileOutputDelimited」コンポーネントをクリックします。

ジョブのリンク

3つのコンポーネントを繋げたら、「tSortRow」コンポーネントの設定を行います。

「tSortRow」コンポーネントをダブルクリックし、コンポーネントタブに 「並べ替え対象の項目」、「ソートの基準(数字,文字,日付)」、「順序(昇順,降順)」を設定します。

「+」のアイコンをクリックし、並べ替え対象の項目を追加します。スキーマカラムの項目に 「id」と表示されるので「id」の部分をクリックし「CustomerName」へ変更します。続いてソートの基準を 「文字」へ順序を「昇順」へ設定します。

ソート順の設定

ここまでで、ファイルのデータを並べ替えるジョブの作成は終了です。

これ以降の作業は、変換後のファイル処理やジョブの体裁を整える作業となります。

変換後のファイルを移動する

変換作業が完了した場合、変換処理によって作成されたファイルを別の場所へ移動するよう コンポーネントを配置していきます。

パレットビューの中から「ファイル」-「ファイル操作」をクリックし「tFileCopy」を選択します。選択後、デザインエリアへ「tFileCopy」コンポーネントを 配置します。

tFileCopyコンポーネントの配置

「tFileInputDelimited」コンポーネントのアイコンを右クリックし、「トリガ」-「サブジョブがOKの場合」を選択し 「tFileCopy」コンポーネントへ繋げます。

トリガ設定

「tFileCopy」コンポーネントをダブルクリックし、コンポーネントタブに コピー元(移動元)ファイル名、コピー先ディレクトリを設定します。

ここでは、変換後のファイルをcustomer.csvに名前を変更し、元のファイルを削除するよう 設定しています。

ファイルコピーコンポーネントの設定

ここまでで、「tFileCopy」コンポーネントの設定は完了です。

ジョブの実行

作成したジョブを実行してみます。

ジョブを実行するには、画面下部の「実行(ジョブ***)」タブをクリックします。タブ内の 「実行ボタン」をクリックすることにより作成したジョブが実行されます。

ジョブの実行

作成したジョブに問題が無ければ、並べ替えが実行され【終了コード=0】が表示されます。

体裁を整える

作成したジョブの各機能に名称を設定することができます。

今回作成したジョブには、大きく分けて2つの機能(サブジョブ)が作成されています。配置したコンポーネントの アイコンの周りを取り囲む薄い紫色?の部分をダブルクリックし、コンポーネントタブをアクティブにします。

サブジョブのタイトル設定

サブジョブのタイトルの表示にチェックを入れ、タイトルにサブジョブの名前を設定します。

ここでは、「顧客名ソート」と設定しました。

サブジョブのタイトル

これにより、ジョブのデザイン部分で機能の概要が分かるようになります。

以上で「How to sort a file」チュートリアルは終了です。