Talend Data Preparationを使ってみる その４

#Talend Data PreparationとTalend Studioの連携#
前回はTalend Data PreparationとTalend Dictionary Serviceとの連携について紹介しましたが、今回はTalend Data PreparationとTalend Studioでの連携機能について紹介します。

#Talend DatapreparationでPreaparation（クレンジング定義）の作成#
Preaparation（クレンジング定義）の作成は[その１](https://qiita.com/Stagea/items/6460e567fc76f63f64fe)で紹介していますが、おさらい的な意味もかねて手順を進めていきます。

今回使用するデータは日本語のデータですが、Talend Studioとの連携をわかりやすくするためにカラム名は英字で作成しています。
データは、名前、ふりがな、メールアドレス、性別、年齢、誕生日、婚姻、血液型、都道府県、電話番号、携帯番号、キャリアで構成されています。
![01_初期データ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/0a9e924d-02f2-17a8-2edb-631b276724a2.jpeg)

DataPreparationを起動してログインし、ADD PREPARATIONボタンをクリックします。
![02_DataPreparation起動後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/774ba161-de74-a16b-f7d3-4c085ceadbb2.jpeg)

Import fileをクリックします。
![03_DATAPREPARATION画面_ADD PREPARATIONクリック後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/4901a892-643c-bf42-9142-6e540a4f2acc.jpeg)

用意したダミーデータファイルを開きます。
![04_DATAPREPARATION画面_ファイル指定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/b926f93d-b2f3-2e32-06c6-da6ee366bd4e.jpeg)

データ内容の日本語が文字化けしていますので、右上の歯車ボタンをクリックしてデータ設定画面を開きます。
![05_DummyData設定クリック.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/5182fc44-3c75-dc18-4317-8aec508badfb.jpeg)
![06_データ設定画面表示.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/139fd3ed-346e-1bb2-ade7-cc4481549910.jpeg)

EncodingがUTF-8になっていますのでShift_JISに変更してCONFIRMボタンをクリックします。
![07_データ設定Shift_JIS変更.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/7e9ae282-8813-484e-0db8-e8f234a86f8d.jpeg)

データ内容が正常に表示されました。
![08_Enchoding変更後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/d3e6fc3a-e414-a589-f96a-01627782922a.jpeg)

Nameカラムを姓と名に分割するクレンジングを定義します。
右の機能一覧からSplit the text in parts...をクリックします。
![09_Nameカラム_クレンジング.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/a1a8e934-d973-a3b4-18b5-8825615c4f4b.jpeg)

SeparatorをSpaceに変更しSUBMITボタンをクリックします。
![10_Nameカラム_クレンジング.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/7772c1fa-ae31-0fe1-ae82-8582be9361f1.jpeg)

Nameカラムの右にName_split_1カラムとName_split_2カラムが追加され、Name_split_1カラムには姓、Name_split_2カラムに名が分割されてセットされています。
![11_Nameカラム分割後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/2a44b342-9d59-3205-e336-810b559be24d.jpeg)

続けて機能一覧からDelete columnをクリックします。
![12_Nameカラム削除.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/7fd2bf05-c006-54a3-e72c-b2f88222738c.jpeg)

分割前のNameカラムが削除されました。
![13_Nameカラム削除後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/d0bb6868-572a-fe09-834a-20c23f189e8a.jpeg)

Name_split_1カラム名の右にある三本線をクリックし、メニューからRename columnをクリックします。
![14_Name_split_1カラム_Rename.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/7bd65160-021e-2bd4-0d16-084a8dda1bcc.jpeg)

新しいカラム名をLastNameにしてSUBMITボタンをクリックします。
![15_Name_split_1カラム_Rename設定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/6b153414-d8a0-ba96-197e-70e0655dfefe.jpeg)

Name_split_1カラムがLastNameに変更されました。
![16_Name_split_1カラム_Rename設定後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/4677636a-4b38-6a0d-4c48-90537fa7c090.jpeg)

同じ手順でName_split_2カラムをFirstNameに変更します。
Huriganaカラムについても、Split the text in parts...でふりがなの姓とふりがなの名に分割し、Huriganaカラムを削除した後に、Hurigana_split_1をLastName_Huriganaに変更し、Hurigana_split_2をFirstName_Huriganaに変更します。
![17_Name_Hurigana_分割_Rename設定後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/678fb619-bbe3-0b15-c8ca-d72f3443a050.jpeg)

Emailカラムを選択して、右の機能からMask data(obfuscation)...クリックし、SUBMITボタンをクリックします。
![18_Email_Mask設定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/149d24eb-f759-0d5c-3f77-bf74d9765ae5.jpeg)

メールアドレスの一部がXに置換されました。
右上の×ボタンをクリックして一覧に戻ります。
![19_Email_Mask設定後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/dc262dff-b5c6-eac9-3c3e-ec4caea4de56.jpeg)

PREARATIONSの一覧にDummyData Preparationが作成されました。
![20_PREPARATIONS一覧.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/7b185fb4-7f1a-80cc-2642-c278f7bc9c5b.jpeg)

DATASETSの一覧にはDummyDataが作成されています。
![21_DATASETS一覧.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/3df2ef51-99fe-2f3b-63cd-6b8c4a4e63b7.jpeg)

Talend DataPreparationでのPreparation（クレンジング定義）の作成作業はこれで終了です。

#Talend StudioでDataPreparation用のジョブ作成#
ここからはTaend Studioでジョブを作成します。
Taend Studioを起動して任意のプロジェクトを開いて新しいジョブを作成します。
PaletteリストからTalend Data Preparationを開き、tDatasetInputコンポーネントをジョブに配置します。
![22_Job_tDatasetInputコンポーネント追加.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/79d6e691-e25b-69af-8f8b-7161ee9409cf.jpeg)

Talend DataPreparationで使用しているUrl、Email、Passwordを設定して、Choose a datasetボタンをクリックします。
![23_Job_tDatasetInputコンポーネント_接続設定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/f50ac147-581e-06dd-ae5b-95e7904f5aba.jpeg)

Talend DataPreparationのDATASET一覧が表示されますので、DummyDataのチェックボックスをクリックしてOKボタンをクリックします。
![24_Job_tDatasetInputコンポーネント_dataset選択画面.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/d092749a-a8ef-52cc-9e25-06705600e55c.jpeg)

Fetch SchemaボタンをクリックしてからEdit schemaの右にあるボタンをクリックします。
![24_Job_tDatasetInputコンポーネント_dataset選択後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/4cb8e7a1-e531-1e90-bc5f-4d2983abe407.jpeg)

ここで表示されたスキーマは、Talend DataPreparationで読み込んだDummyData.csvのカラムと一致しています。
![25_Job_tDatasetInputコンポーネント_dataset_スキーマ取得後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/0cf31db4-1002-e7ee-c79c-edceda1a140f.jpeg)

続けてtDataprepRunコンポーネントをジョブに追加します。
![26_Job_tDataprepRunコンポーネント追加.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/353a2bbf-53bc-cf05-5e33-5e054ef37e7c.jpeg)

Data Preparation ConnectionにはTalend DataPreparationで使用しているUrl、Email、Passwordを設定します。
ConfigurationのDynamic preparation selectionをチェックして、Preparation pathにはTalend DataPreparationのPREPARATIONSに作成されたDummyData preparationを設定します。
設定後にFetch Schemaをクリックします。
![27_Job_tDataprepRunコンポーネント_接続設定.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/bef76939-9619-05c1-8650-3c7b81d5c370.jpeg)

変更確認のメッセージが表示されますのでOKボタンをクリックします。
![28_Job_tDataprepRunコンポーネント_fetchshema確認.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/86fdc46c-ed53-8bbe-a9b5-7a35ae92120e.jpeg)

取得したスキーマはTalend DataPreparationで作成したDummyData Preparation（クレンジング定義）のスキーマになっています。
![29_Job_tDataprepRunコンポーネント_preparationスキーマ取得後.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/068a40f7-76ae-577e-852d-038a1275dbf5.jpeg)

ジョブにtFileOutputDelimitedコンポーネントを追加します。
![30_Job_tFileOutputDelimitedコンポーネント追加.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/866c95e5-2c21-3402-1f88-d9b86fb2c17c.jpeg)

ファイル名、区切り文字、ヘッダー設定を変更します。
![31_Job_tFileOutputDelimitedコンポーネント設定1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/1168af97-c248-6795-0474-458b9247f926.jpeg)

文字コードをShift_JISに変更します。
![32_Job_tFileOutputDelimitedコンポーネント設定2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/200b627e-c9b2-f96d-a4ee-4766e6983442.jpeg)

ジョブの設定が完了しましたので実行します。
![33_Job_実行準備完了.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/e8cdc43d-c034-3900-16fa-c3831a409991.jpeg)

ジョブが正常に実行されて結果が表示されました。
![34_Job_実行完了.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/8ca46f31-be7a-5627-c7ac-3e6ea4a3fc90.jpeg)

指定したファイルが出力されています。
![35_ファイル出力確認.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/18dcf305-5e7c-9eba-d569-3be09af891e9.jpeg)

出力されたファイルの内容はDataPreparationのクレンジング定義の内容で出力されています。
![36_クレンジングデータ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/d9c9ee84-3982-9286-0bf2-1a612ed722fd.jpeg)

#まとめ#
Talend DatapreparationとTalend Studioを使用することにより、Talend DatapreparationにDATASETをアップロードしてジョブを実行することにより、クレンジングファイルの作成が行われることになります。
今回作成したジョブはバッチモードで作成しましたが、次回はライブモードのジョブ作成を紹介したいと考えてます。