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

#Talend Data Preparationについて#
Talend Data Preparationは、データ分析の前段階でのクレンジング処理を視覚的にチェックしてデータを修正することができるツールです。

#セットアップ#
今回は無償版のTalend Data Preparation Desktopを導入してみます。
OSはWindows10で、Talend Data Preparation Desktopのバージョンは2.5.1です。
Talend Data Preparation Desktopのダウンロードは[こちら](https://www.talend.com/products/data-preparation/data-preparation-free-desktop/)から可能です。
ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを行います。

#起動#
Talend Data Preparationは単体でのアプリケーションではなく、サービスが起動されてからのブラウザアプリケーションとなっています。
起動はインストールしたフォルダの下にあるdataprep.exeを実行します。
起動中はTalend Data Preparationのアイコンが表示されていて、アイコンが消えてからしばらくするとブラウザが自動で起動されます。
起動後はPraparationsの一覧が表示されます。

#実践#
Praparationsの一覧には既に登録されているデータが存在していますが、Add Preparationボタンをクリックしてファイルから別のデータを読み込んでみます。
![DataPreparation_デモ_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/fd93230c-992d-674b-384a-8878dbf65e62.jpeg)

#ファイルからの読み込み#
ファイルの選択画面が表示されます。
既に用意されているサンプルファイルがありますので、一番上にあるエクセルファイルのCustomersを選択して、右下のCONFIRMボタンをクリックします。
![DataPreparation_デモ_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/2869b639-4060-cfd7-195c-d5be01d719ae.jpeg)

#ファイルの読み込み後#
読み込んだデータの画面が表示されます。
この時点で表示されているデータは分析された状態になっています。
カラム名の右下にはData Preparationで定義済みのsemantic Typeが表示されています。
カラム名の下にはdata quarity barという色のついた部分があり、緑色はsemantic Typeと一致している状態を示し、白色は空白のデータがあることを示し、橙色はsemantic Typeと一致していないデータがあることを示しています。
![DataPreparation_デモ_03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/a04e6c9a-5713-73bb-c1c7-eda9a3dcdd73.jpeg)

#列を選択#
State列を選択すると右下に値別行数のチャートが表示されます。
![DataPreparation_デモ_04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/e87a7e8b-a9b2-d6b5-bd6b-4c7cec6bc927.jpeg)

#データパターンの表示#
右下のPATTERNをクリックすると、列のデータを分析して全パターンを表示します。
Stateはアメリカ合衆国の州コードなので正しいパターンはAAですが、正しくないパターンのAaaaaが存在していますので、このパターンAaaaaをクリックします。
![DataPreparation_デモ_05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/83b393ae-cafe-049a-1785-91c7f102038e.jpeg)

#フィルタリング表示#
パターンAaaaaをクリックするとフィルタリングされて表示されます。
正しくないパターンのデータはTexasの４レコードでした。
![DataPreparation_デモ_06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/1edf08c1-3fb2-8f10-9380-dc18ded817ca.jpeg)

#文字列置換#
正しくないパターンのデータを修正するために文字列置換機能を利用します。
右上のCOLUMNの一覧からSearch and replace...を選択します。
![DataPreparation_デモ_07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/5555c664-fc16-80b5-87c5-e42079d82f96.jpeg)
Search for:の下にあるアイコンをクリックすると、検索式の一覧が表示されますので、一番上の= Equalsを選択します。
![DataPreparation_デモ_08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/4050ef0e-7009-e870-b586-4af21b3b9a7b.jpeg)
検索式の右に検索条件となるTexasを入力し、下のReplace with:の欄に正しい州コードであるTXを入力し、SUBMITボタンをクリックします。
![DataPreparation_デモ_09.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/2f31045d-68c5-722d-617d-fb25a797e3f5.jpeg)
正しいデータに置換されるとデータが表示されなくなりますので、カラムの上にあるフィルタリング条件の×をクリックしてフィルタリングを解除します。
![DataPreparation_デモ_10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/6a6e53ec-d78f-e280-9156-2e366fd746d6.jpeg)
置換後に右下のPATTERNをクリックすると正しいパターンのAAのみが表示されています。
![DataPreparation_デモ_11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/22ac9c9a-ec41-690e-0d62-88b11b751a93.jpeg)
この置換した内容はレシピとして保存され、画面左側に表示されています。

#日付フォーマット指定#
次は日付のカラムに対してフォーマットを指定してみます。
まずカラムのSubDate列を選択し、右上の一覧からChange date format...をクリックします。
![DataPreparation_デモ_22_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/5a88fa06-39bd-e510-480b-3bf29dae35e2.jpeg)
New format:のリストからOtherを選択し、下に表示されるYour format:に指定するフォーマットyyyy-MM-ddを入力してSUBMITボタンをクリックします。
![DataPreparation_デモ_22_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/3ae71a00-9337-2543-1358-ead354b069fe.jpeg)
SubDate列のデータはyyyy-MM-ddの形式にフォーマットされ、データ画面の左には実行したレシピが追加表示されます。
![DataPreparation_デモ_23.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/7eea225f-c7e6-afaf-3dd5-93aac27a96dd.jpeg)
続けてフォーマットをJapanese standard with timeに変更します。
![DataPreparation_デモ_24.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/a0978bc7-730f-fee1-3eb6-22e7bd6964ee.jpeg)
SubDate列のデータはyyyy/MM/dd HH:mmの形式にフォーマットされ、さらにレシピが追加表示されます。
![DataPreparation_デモ_25.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/1c6319da-0182-c5df-dd54-7832a36092c8.jpeg)

#レシピの削除#
左側に表示されているレシピは追加した時点で自動保存されています。
間違ったレシピを追加してしまった場合には、特定のレシピだけを削除することができます。
削除したいレシピの上にマウスカーソルを置くとゴミ箱のアイコンが表示されますので、削除したい場合にはゴミ箱のアイコンをクリックします。
![DataPreparation_デモ_26.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/0c155ce6-f751-7a1c-d918-fdbf7695354f.jpeg)
最後に追加したJapanese standard with timeにフォーマット指定したレシピが削除され、SubDateの表示が一つ前に実行したyyyy-MM-dd形式の表示に変わります。
![DataPreparation_デモ_27.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/463924/46a32d57-284a-b406-6873-19dffe35dc8e.jpeg)

#まとめ#
今回はTalend Data Preparation Desktopを使用して、基本的な使い方とデータの準備によくある文字列置換と日付フォーマット変更について実践してみました。
まだ紹介できていない機能もありますので引き続き投稿していこうと考えてます。
また、今回は無償版のDesktop版を使ってみましたが、有償版では他のTalendサービスとの連携が可能になるので、環境が構築できれば有償版での実践を行ってみたいと考えています。