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

メモ:  Category:oss

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」チュートリアルは終了です。

bluenote by BBB