[Talend] Talend Data Preparationを使ってみた

2017.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

最近よくデータプレパレーションという言葉を耳にするようになったので流れにのって実際にツールを使って体験してみました。
報告レポートを生成するための前準備として多くの時間を費やしている方も多いのではないでしょうか。
また、Tableau等でデータ分析する際に効率的に分析をするためにはデータを整形するという作業がつきまといます。
その辺りを楽にしてくれるのがデータプレパレーションツールになります

動作させた環境

  • OS:Windows7
  • ツール:Talend Data Preparation Free Desktop 1.3.0

データプレパレーションツール

等々

インストール

まずはTalend社本家のサイトからダウンロード
※現記事公開の時点では1.3.0が最新のようです
Talend-DataPreparation-Free-Desktop-1.3.0.exeがダウンロードされますので、実行してインストールします。

起動させてみる

インストールが終わったらスタートメニューから選択して起動します。

TDP4_1

立ち上げると起動中に以下のアイコンが表示されますので暫く待ちましょう。

TDP

ブラウザが起動し、以下の初期画面が表示されます。
最初はデスクトップアプリかと思ってましたが、ブラウザアプリケーションで起動します

TDP2

上記は起動直後の画面になります
まずはデータセットを追加したいので左側ペインにあるDatasetsを選択します。

TDP3

最初からいくつかサンプルデータがありますが、今回はテストデータとして国土交通省に公開されているEXCELデータを使ってみます。
ADD DATASETをクリックして、対象ファイルを選択します。(ここではダウンロードしたEXCELファイル(001158120.xlsx)を選択しました。)

元データ

元データの中身は上記のような感じになっています。

ダウンロードしたEXCELデータそのものを指定したら文字化けせずにプレビューできましたが、EXCELデータを一旦CSVに書き出して、そのCSVファイル(SHIFT-JIS)を指定した場合、Datasetsとして追加したら以下のように文字化けを起こしました。

TDP7

でも大丈夫!(どっかで聞いたことのあるフレーズ。。。)
文字化けした場合は、一旦左上にある歯車アイコンをクリックしてEncodingを下記の様に適切に指定してあげる必要があります。(今回はSHIFT_JIS)

TDP8

しばらくするとプレビュー画面がリフレッシュされ下記のように正しく表示されます。
※データプレビューは対象行として30000行がデフォルトです。

TDP9

データセットが追加できたので、次はPrepationsに切り替えて「ADD PREPARATION」します。(名称を「外国人訪問データ」にリネームしています)

TDP10

ファイルの指定が終わると下記のようにプレビュー画面に切り替わります。まずは1列目に不要なカラムがあるので、削除してみます。

TDP11

Delete Columnを選択すると処理が走り、下記の画面になります。

TDP12

左ペインには実施した操作が記録されています。

TDP13

どうやらこの操作を記録したものをレシピと言うらしい...
次に後ろにも不要な列が入っているので、一気に16列を選択して、Delete Columnしたかったのですが、やり方がわからなかったので、1列ずつDeleteしました。(これ地味に面倒)
次にEXCELのヘッダ行が先頭2行に入ってるので、DATA CLEANSINGの Delete the Rows with Invalid Cell を指定すると先頭2行がintegerではない値なので取り除かれます。

TDP14

最後に出国港のコードが101のものだけ残すってことをやってみます。

TDP15

右ペインの DATA CLEANSING にある Delete the Rows that Match… で値を指定します。試しに成田のコードだけ残す指定をしてみます。

TDP18

比較演算子は4パターン+正規表現もサポートしているので、ある程度のことはできそうですね。
ではデータクレンジングしてみます。
成田のコードはファイルから読み取ると101なので、101より大きいものを削除したいと思いますので、101と入れてSUBMITしてみましたが、全レコード削除になってしまいました。ということで102と入れてSUBMITする必要があります。
(画面上は > ですが実際は >= の以上ってことのようです)

データをEXPORTしてみる

とりあえずサンプル的にデータクレンジングをやっているので、終わった体にして、次にデータをEXPORTしてみます。
Talend Data Preparationでは以下のように3種類の出力形式が選べます。

TDP16

せっかくなので、今回はTableau形式で書き出してみます。(Tableau抽出形式(TDE)です)
EXPORTをすると Preparation.tde というファイルがダウンロードフォルダに書き出されます。

Tableau Desktopで開いてみる

エクスポートされたTDEファイルを開きます。

TDP21

開くと下記のようになりました。

TDP22

ここまで来てしまえばあとはTableauの世界なので、カラム名を変更して分かりやすくしたり、不要な列を非表示にしたりしました。せっかくなのでTableauでデータを見てみます。
※Talend Data Preparation側でカラム名称の変更もできます。

TDP23

2014年のデータですが、ダントツで中国からの訪問が多いですね。
米国が2位くらいかと勝手に想像していましたが、データを見る限りイギリスが多いんですね。(データクレンジングで成田に絞っているからかもしれませんが。。。)

TDP19

訪日目的としては以下の様になっていました。

TDP20

やはり観光がダントツですね。3位に位置づけてる「家族・知人の訪問」ってのが意外と多いのにはびっくりしました。

まとめ

Talend Data Preparationはデータ加工用として様々な機能が標準提供されているので、ノンプログラミングでサクッとデータクレンジングしてデータ整形するってことでは使いやすいツールではないかなと思います。ただし、中央ペインのデータ部分をクリックするごとに右側ペインの情報更新処理が走るので、かなりもっさり感があります(検証しているPCが非力なPCだからかもしれません) データ加工後は分析ツールでは定評のあるTableau形式に書き出しができるので、 分析担当者はクレンジング後のデータを使ってそのまま即座にアドホックな分析も可能になります。(私のようなおじさんにはノンプログラミングでデータクレンジング出来るのは嬉しいw) また、一旦レシピをTalend Data Preparationで定義してしまえばそのレシピ内容を見ればETL処理の設計が完成しているようなものなので、Redshift等のDWHにTalend Open StudioやPython、Java等を使ってETL処理を実装するのは容易になるのではないかと思います。 このTalend Data Preparationで定義したレシピから自動生成でTalendジョブができたりしたら最高ですけどね。。。