clock2015.06.21 10:07
SERVICE
home

Talendで簡単なジョブの作成|Talend Open Studio によるビッグデータ分析(第3回)

AUTHOR :   ギックス

Windowsで出力されたCSVファイルをエンコード(UTF-8)してDBに取込める形に変換する

前回は、Talend Open Studio(以下、Talend)のインストールと初期設定を解説しましたは、今回は、一般的なWindowsのExcel等から出力されたCSVファイルから、DBへのインポートファイルを作成する簡単なジョブを作成するまでの手順を解説しようと思います。

ジョブの新規作成

ジョブは、一連の処理の組合せを定義します。例えば、CSVファイルを取込んでフィルタリング、変換、DBインポートファイルの作成までの処理が1つのジョブになります。また、1つのプロジェクト内に複数のジョブを作成することができます。前回は、Talendの画面を開くためにプロジェクト名を登録し、新規プロジェクトを作成までを行いました。今回は、作成したプロジェクトにジョブを作成します。

始めにTalend画面左側のリポジトリエリアの「ジョブ」を右クリックし、「ジョブの作成」をクリックします。talend_job1

開かれた新規ジョブ画面にジョブ名(name)を入力します。talend_job2

ジョブが作成されるとTalend画面中央のデザインエリアに作成したジョブ名のタグが表示されます。talend_job2_2

入力ファイルを指定する

Talendでは、入力ファイルは「メタデータ」として扱われ、その中でCSVファイルなどの区切り文字が含まれるファイルは「区切り符号付きファイル」で処理できます。CSVファイルをTalendで扱うためには、メタデータの定義を行ってから、デザインエリアに配置を行います。

始めにTalend画面左側のリポジトリエリアの「メタデータ」の「区切り記号付きファイル」を右クリックし、「区切り記号付きファイルの作成」をクリックします。talend_job3

表示された新規区切り記号付きファイル画面に定義名(name)を入力します。talend_job4

次ページ(2/4)で入力元のCSVファイル名を入力し、フォーマットで「WINDOWS」を選択します。talend_job5

次ページ(3/4)で下記の内容を入力します。入力項目変更後、反映結果を確認したい場合、「プレビューのリフレッシュ」ボタンをクリックするとプレビューが変わります。

  • エンコーディング:MS932(日本語Windowsの標準出力エンコード)
  • フィールドセパレータ(区切り文字):Comma
  • ロウセパレータ(改行文字):”\r\n”(Windowsの改行文字)
  • エスケープ文字の設定:CSV
  • テキストエンクロージャ:”\””(ダブルクォーテーション括り)
  • 列名として先頭行を設定:先頭行にタイトル行がある場合はチェック
    talend_job7

次ページ(4/4)でスキーマ名を入力します。また、スキーマの説明で各項目の項目名(COLUMN)、タイプなどを設定できます。項目名は、これからの処理で使う場面が出てきますので、重要な項目には、項目名を付ける事をお勧めします。talend_job8

区切り記号付きファイルの作成が完了するとメタデータの一覧に追加されます。追加されたスキーマをデザインエリアにドラック&ドロップします。talend_job9

表示されたコンポーネント画面から「tFileInputDelimited」を選択します。完了するとデザインエリアにアイコンが表示されます。talend_job10

出力ファイルを指定する

Talendでは、出力ファイルの指定は、コンポーネント(機能)の追加によって行われます。

始めにTalend画面右側のパレットエリアの「ファイル」の「ファイル出力」の「tFileOutputDelimited」をデザインエリアにドラック&ドロップします。完了するとデザインエリアにアイコンが表示されます。talend_job11

先の操作で追加されたデザインエリアの「tFileInputDelimited」アイコンを右クリックし、「Row」の「メイン」をクリックします。クリックするとオレンジ色のラインが「tFileInputDelimited」アイコンから伸びますので、「tFileOutputDelimited」アイコンをクリックして、2つのアイコンを紐づけます。talend_job12

次に「tFileOutputDelimited」アイコンをクリックし、Talend画面下のコンポーネントに下記の内容を設定します。

  • ファイル名:出力先のファイル名
  • 行区切り文字:”\n”(DBで扱える改行文字)
  • フィールド区切り記号:”\t”(タブ文字)
  • エンコード:UTF-8(DBで扱える文字エンコードタイプ)

talend_job13

ジョブの実行

以上でジョブの作成は完了です。Talend画面下のコンポーネントから実行ボタンをクリックすると指定した出力先にファイルが作成されるはずです。もし、エラーが発生した場合、デザインエリア上のアイコンが赤枠で括られますので、修正してください。talend_job15

基本操作はパーツを設定して繋ぐだけ

今回は、入力ファイルと出力ファイルの指定を行い、2つのパーツを繋げるだけの簡単なジョブの作成でした。この様にTalendでジョブを作成する場合、プログラムの入力や専門的な知識はありません。今回使用したコンポーネント(機能)は、2つだけですが、この他に800以上のコンポーネントがあります。次回は、使用頻度が高いコンポーネントをご紹介したいと思います。

スキーマのカラム名(項目名)で全角文字を使う方法(2015/07/18 UPDATE)

Talend株式会社より、貴重な情報を頂きましたので公開したいと思います。記事を書いた当初は、区切り符号付きファイルなどのスキーマのカラム名は半角だけしか使いないと思っていましたが、設定の変更で全角のカラム名を付けることができる事が分かりました。

方法は、メニューバーの[ウィンドウ]→[設定]から設定画面を開き、[Specific Settings]の[Allow specific characters for columns of schemas]にチェックを入れるだけです。これで全角のカラム名を設定できるようになりました。talend_settings

【連載、Talend Open Studio によるビッグデータ分析】
  1. ”Talend”と”RapidMiner Studio”、2つのETLツールを比較してみた
  2. Talendのインストールと初期設定(Windows 8.1編) ~Javaのバージョンに気を付けろ~
  3. Talendで簡単なジョブの作成 (本稿)
  4. フォルダ中のファイルを変換して1つにまとめる
  5. フィルタリングと文字列置換とプログラムによる変換方法
  6. DB間のデータコピーを2つのコンポーネントだけで行う
  7. Amazon Redshiftへのデータインポートを2つのコンポーネントだけで行う
  8. Talendがバッチ処理の開発方法を変える ~スマートな開発を行おう~
  9. Talendの無償版(TOS)と有償版(Enterprise)の違い
  10. TOSを使ってMicrosoft Azure SQL Data Warehouseを操作する
  11. TOSでギガ単位の適切なテストデータを作成する
  12. Web API からの取得結果をデータベースに登録する処理をノンプログラミングで実現する
SERVICE