hrendohオープンソースETLツールTalendでExcelのデータをデータベースにロードしてみたオープンソースのETLツールTalendの使い方についてインストールから基本的な使い方までをまとめてみました。Integrationツールです。利用用途としては主にETLという認識でしたが、HPをさっとみただけでは全容が把握できないほど多機能です。http://www.talend.com/HP(日本):http://jp.talend.com/有償版もあるので企業導入の際にも支障がありません。各ページに比較表があります。Management」が有償版です。セットアップしてタイトルの通りExcelのデータをデータベースMySQLにロードしてみます。»]をクリックし、OSを選択するとDLが始まる。コミュニティ版もサイズが450Mほどあるので時間がかかります。実行環境の準備Talendは、Javaで動きますのでJava実行環境をインストールしておきます。Macの場合はインストール不要で、ダウンロードしたファイルを解凍して、すぐに利用できます。初回起動時は、LGPL3ライセンスの承諾を要求されますので[承諾]をクリックしておきます。新規プロジェクトの作成に「ExcelToMySQL」と入力して[作成]ボタンをクリックします。[終了]をクリックするとプロジェクトが作成されます。右上の[開く]をクリックします。TalendForgeの登録は[スキップ]しておきます。Studioが開きます。[ようこそ]を閉じて画面左の[ジョブ]の右クリックメニューから[ジョブの作成を]をクリックして新しいJobを作成していきます。[Name]に適当なジョブ名(ここでは「FirstJob」)を入れて[終了]をクリックすると作成したジョブの編集画面が開きます。ジョブ名には空白や日本語は使えません。入力ファイルは以下のようなメールアドレスと名前のみを含むユーザリストのExcelデータです。[メタデータ]を開き[Excelファイル]で右クリックし、メニューから[Excelファイルを作成]をクリックします。[Name]のみが必須なので、[Name]を適当い入れて[次へ]をクリック入力のExcelファイルを選択して、[シートパラメータの設定]で、入力のシートを選択します。ここでは”ユーザリスト”シートを選択しています。[次へ]をクリックします。[列名として先頭行を設定]にチェックをいれて[プレビューのリフレッシュ]ボタンをクリックすると、1行目が列名として設定されます。Talendは日本語の扱いが微妙でExcelの先頭行が日本語だと”Cloumns1′′の様な自動的に振られた名前になってしまいます。[スキーマの説明]で[COLUMN]に1行目が列名として設定されていることを確認したら[終了]をクリックしてダイアログを閉じます。出力先のMySQLのテーブルは以下の通りです。[DB接続]から[DB接続の作成]をクリックします。Type]で”MySQL”を選択肢、接続情報を入力していきます。データベースはUTF-8なので、[追加パラメータ]には”&useUnicode=YES&characterEncoding=utf8′′を追加します。接続のチェックのために[チェック]をクリックすると、接続にMySQLのJDBCドライバーが必要なためインストール用ダイアログが表示されます。available]をクリックして、ライセンスを承諾するとモジュールのダウンロードが始まります。インストールが終わると自動でダイアログが閉じ接続がチェックされます。[OK]をクリックして[次へ]をクリックします。[次へ]が有効にならない場合は[終了]をクリックします。データベース接続”users”が追加されているので、右クリックメニューを開き[スキーマ情報の取得]をクリックします。“users”にチェックを入れて[次へ]内容を確認して[終了]ジョブを定義Excelファイルを入力として定義します。[tFileInputExcel]を選択します。DB接続を出力として定義します。上で定義したDB接続”users”をドロップすると同様にダイアログが表示されるので[tMysqlOutput]を選択します。これで、入出力が用意できました。次に、入出力をつなげるマッピングを定義していきます。マッピングを処理は右ペインから[tMap]をドロップします。ステンシルはたくさんあるので、検索を使っても探せます。[メイン]を選択します。選択するとExcel入力からの線が表示されるので、それを[tMap]にドロップします。次に、[tMap]からMySQL出力へ接続します。Output*(メイン)]を選択します。出力名を入力して[OK]をクリック[はい]をクリック以下のように入出力がつながりました。Excelの各列とMySQLのカラムがマッピングされていない状態なので、次にマッピングを定義します。[tMap]をダブルクリックするとマッピングを定義用のウィンドウが表示されます。[自動マップ]をクリックすると自動でExcelの列とMySQLのカラムを適当にマッピングしてくれます。ジョブを実行ジョブの実行は、下の[実行(ジョブFirstJob)]タブの中の[実行]ボタンをクリックすると開始します。実行結果が表示されます。