Talend チュートリアル(How to set up a Join link on a Job Design)
Talend Communityに紹介されているチュートリアル(その2)!データを結合するチュートリアルを実装してみます。
今回、実行してみるチュートリアルは、顧客情報の入ったCSVファイルと州情報の入ったCSVファイルを州IDで結合して新しいファイルを出力するといった内容です。
最初に顧客情報が入ったCSVファイルを「http://www.talendforge.org/tutorials/data/tuto002/002.zip」からダウンロードして チュートリアルを実行できる準備をします。 (How to set up a Join link on a Job DesignのexampleFile.zip)
Customer.csvサンプルファイルの中は、次のようになっており区切り文字(デリミタ)が「;(セミコロン)」で作成されています。
/************************************************************/;;;;;;;;
/******* 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
state.txtサンプルファイルの中は、次のようになっており区切り文字(デリミタ)が「;(セミコロン)」で作成されています。
idState;LabelState
1;Alabama
2;Alaska
3;Arizona
4;Arkansas
5;California
このチュートリアルは、idState(州ID)で結合してid,CustomerName,CustomerAddress,LabelStateを含む新しいファイルを作成します。
メタデータ 区切り記号付きファイルの作成
Talend Communityに紹介されているチュートリアルでは、プロジェクトのリポジトリに各ファイルの項目定義が作成されているので、最初に項目の定義を作成していきます。
ジョブを作成したらリポジトリビューの「メタデータ」-「区切り記号付きファイル」を右クリックし、「区切り記号付きファイルの作成」を選択します。
ダイアログが表示されるので「Name」にcustomerと入力し、「次へ」ボタンをクリックします。
設定対象のファイルとファイルのフォーマットを設定します。ここでは、ファイルにダウンロードしたサンプルの「c:\work\src\customer.csv」を設定し、フォーマットに「WINDOWS」を指定します。
次に指定したCSVファイルのフォーマットについて設定していきます。
スキップする行のHeaderにチェックを入れ、行数を「6」に設定します。後は、デフォルトのままで変更はありません。
- エンコーディング:US-ASCII
- フィールドセパレータ:Semicolon(;)
- ロウセパレータ:Standard EOL(\n)
- エスケープ文字:区切り
最後にスキーマを定義していきます。
COLUMN | キー | タイプ | ヌル | 長さ |
---|---|---|---|---|
id | ○ | int | 9 | |
CustomerName | String | 255 | ||
CustomerAddress | String | 255 | ||
idState | int | 2 | ||
id2 | int | 2 | ||
RegTime | String | 30 | ||
RegisterTime | String | 30 | ||
Sum1 | float | 10 | ||
Sum2 | float | 10 |
同様に州情報のテキストファイルも設定を行っていきます。
ダウンロードしたサンプルの「c:\work\src\state.txt」を指定し、フォーマットに「WINDOWS」を指定します。
スキップする行のHeaderにチェックを入れ、行数を「1」に設定します。後は、デフォルトのままで変更はありません。
州情報のスキーマも定義していきます。
COLUMN | キー | タイプ | ヌル | 長さ |
---|---|---|---|---|
idState | ○ | int | 2 | |
LabelState | String | ○ | 14 |
ここまでで、メタデータの定義は終了です。
CSVファイルからデータを入力するコンポーネントの配置
パレットビューの中から「ファイル」-「ファイル入力」をクリックし「tFileInputDelimited」を選択します。選択後、デザインエリアへ「tFileInputDelimited」を2つ配置します。
1つ目に配置したコンポーネントのアイコン(絵の部分)をダブルクリックし画面下部のコンポーネントタブへコンポーネントの設定を追加していきます。
ここでは、プロパティタイプを「リポジトリ」に設定し定義済みのメタデータを指定していきます。プロパティタイプの右にあるボタンをクリックし、リポジトリの内容を表示します。
表示されたダイアログの中に事前に作成した「区切り記号付きファイル」の定義「customer」があるので選択し、「OK」ボタンをクリックします。
事前に定義した情報が反映され、入力項目がグレーアウトします。次にスキーマを確認していきます。「スキーマの編集」の右にあるボタンをクリックします。
ダイアログが表示されるので「View schema」を選択しOKをクリックします。
定義とは別のスキーマが必要な場合は、「組み込みプロパティに変更」、リポジトリに変更が加えられており反映する必要がある時は、「リポジトリ接続の更新」を選択します。
スキーマ情報が表示され、事前に定義したスキーマと同じであることが確認できます。
次に2つ目に配置した「tFileInputDelimited」コンポーネントの設定を行います。
プロパティタイプを「リポジトリ」に設定し定義済みのメタデータを指定していきます。プロパティタイプの右にあるボタンをクリックし、リポジトリの内容を表示します。
表示されたダイアログの中に事前に作成した「区切り記号付きファイル」の定義「states」があるので選択し、「OK」ボタンをクリックします。
事前に定義した情報が反映され、入力項目がグレーアウトします。次にスキーマを確認していきます。スキーマの編集の右にあるボタンをクリックします。
ダイアログが表示されるので「View schema」を選択しOKをクリックします。
スキーマ情報が表示され、事前に定義したスキーマと同じであることを確認します。
ここまでで、データを入力するコンポーネントの設定は終了です。
マップコンポーネントと出力コンポーネントの配置
2つのデータを結合するために「tMap」コンポーネントを配置します。
次に出力先を用意するため「tFileOutputDelimited」コンポーネントを配置します。
ジョブのデザインビューには、4つのコンポーネントが配置されます。
配置したコンポーネントを繋げていきます。最初に設定した「tFileInputDelimited(customer)」コンポーネントを右クリックでドラッグし「tMap」コンポーネントへ繋ぎます。
2つ目に設定した「tFileInputDelimited(states)」コンポーネントを右クリックでドラッグし「tMap」コンポーネントへ繋ぎます。つなげた線には、Lookupと表示されます。
「tMap」コンポーネントで結合した結果を出力するよう「tFileOutputDelimited」コンポーネントへ繋ぎます。
線をつなげると次のダイアログが表示されるので、出力名にoutputと入力します。
配置した4つのコンポーネントが繋がれた状態が完成します。
結合条件と出力項目の設定
「tMap」コンポーネントをダブルクリックし、コンポーネントタブをアクティブにします。コンポーネントタブにあるマップエディタのボタンをクリックし、マップエディタを表示します。
row1のidState項目をドラッグしてrow2のidStateへドロップし、idState項目で結合するよう設定します。
次に出力したい項目をドラッグして右端の「output」へドロップしていきます。
ここでは、row1(customerファイル)のid,CustomerName,CustomerAddress、row2(stateファイル)のLabelStateを出力するよう設定します。
最後に「tFileOutputDelimited」コンポーネントに結合後のファイルの出力先とヘッダーを含むにチェックを入れ、今回のジョブは完成となります。
ジョブを実行して2つのファイルからデータが結合されていることを確認します。正しく設定できていれば次のようなデータが作成されます。
id;CustomerName;CustomerAddress;LabelState
1;Griffith Paving and Sealcoatin;talend@apres91;Connecticut
2;Bill's Dive Shop;511 Maple Ave. Apt. 1B;Ohio
3;Childress Child Day Care;662 Lyons Circle;Alabama
4;Facelift Kitchen and Bath;unknown;
5;Terrinni & Son Auto and Truck;770 Exmoor Rd.;
以上で「How to set up a Join link on a Job Design」チュートリアルは終了です。