Talend Open Studio で簡単なジョブの作成(後半)

Talend Open Studioで簡単なジョブの作成方法をご紹介しています。

前半では、ジョブを新規作成してメタデータを作成するところまでをご紹介しました。
Talend Open Studio で簡単なジョブの作成(前半)

この後半では、前半で作成したメタデータを使ったジョブの作成をご紹介します。

メタデータは、データがどのような名前の項目を持ち、どんなサイズ、データ型で、どのように制約を持っているかの情報を保持しています。

ETLは、その性質上、どんなデータを読み込み、どんなデータとして出力するかを決めてあげなければなりません。場合によっては、データが数十のカラムを持つ場合も多々あります。それに対して、毎回手で定義を書き込んでいては非常に非効率なので、定義情報を使いまわしできるのがメタデータ機能のメリットです。


4. メタデータを作成すると、リポジトリビューのツリーの中にそれが現れます。前半では、標準地域コードというメタデータを作成しましたので、その名前の項目があります。この「標準地域コード」という項目をジョブのデザインエリアにドラッグ&ドロップすることから作業を始めます。

作成されたCSVメタデータ

作成されたCSVメタデータ

まずは、この「標準地域コード」をCSVから読み込みたいので、ジョブのデザインエリアにドラッグ&ドロップします。

メタデータを使ったジョブ作成

メタデータを使ったジョブ作成

ドラッグ&ドロップすると、このメタデータをどんな用途(コンポーネント)として使用するかを指定するダイアログが表示されます。ここでは、CSVを読み込むコンポーネントとして使用したいので、「tFileInputDelimited」を選択します。この「tFileInputDelimited」も含めたこのリストの名前は、画面右にあるパレットビューの中にもすべて含まれています。この方法でコンポーネントを選ぶことで、「tFileInputDelimited」が指定のメタデータの情報がセットされた形で配置できるのです。

メタデータからコンポーネントを配置する

メタデータからコンポーネントを配置する

配置されたコンポーネントのプロパティを確認してみましょう。ジョブデザインエリアには「標準地域コード」と名付けられたアイコンが一つだけ配置されています。このアイコンをクリックして選択して、画面下段の「コンポーネント」タブを選ぶとコンポーネントのプロパティが表示されます。この中に、メタデータ作成で設定したプロパティ値がセットされていることが確認できます。

コンポーネントのプロパティ確認

コンポーネントのプロパティ確認

リポジトリビューから項目をドラッグ&ドロップすることで、毎回、項目数の多いプロパティ値をコンポーネントに毎回セットする手間が省けることが分かります。よく利用するデータソースほどこのメタデータ活用が便利になることでしょう。メタデータの機能には、リポジトリ側のプロパティを変える(例えば、ファイルのパスを変える、など)と、そのリポジトリのメタデータを使用するすべてのジョブに自動的に反映させる機能があり、メタデータを一元管理することで、データソースの仕様変更にもすみやかに対応することができるようになります。


5. 続いて、CSVから読み取ったデータをExcelファイルとして出力するために、データをExcelに書き出すコンポーネントを配置します。パレットビューの一番上にあるテキストボックスにコンポーネント名を入力すると、コンポーネントが検索できます。「tFileOutputExcel」で検索しましょう。前方一致検索ですので、コンポーネント名の一部の文字列だけでも検索できます。検索結果として出てきた「tFileOutputExcel」をマウス操作のドラッグ&ドロップでデザインエリアに配置します。

パレットビューからコンポーネントの配置

パレットビューからコンポーネントの配置

上の操作で、Excelファイルに出力するコンポーネントが利用できるようになりました。次は、先に配置済みの、CSVファイルからデータを読み込む「標準地域コード」(tFileInputDelimited)からデータを受け取れるようにします。操作は簡単で、データを送り出す側のコンポーネント(ここでは「標準地域コード」(tFileInputDelimited))を右クリックし、「Row」>「メイン」の順に項目を選択します。この操作によりデータを送り渡す相手のコンポーネント(ここでは2番めに配置したtFileOutputExcel)に線を接続させることができます。


Sponsored Link

コンポーネントの接続

コンポーネントの接続

コンポーネント間の線を接続すると、以下の画面ショットの形になります。CSVデータ入力元の「標準地域コード(tFileInputDelimited)」からExcelに出力する「tFileOutputExcel」に向けて矢印が引かれ、矢印には「row1 (Main)」と表示されます。この「row1」にも「Main」にも重要な意味がありますが、このサンプルジョブ作成の時点ではその説明は不要なので割愛します。別の記事にてご説明します。

下の画面ショットのように、入力と出力のコンポーネントを先で繋いだら、それだけですぐに使えるというわけではありません。「スキーマ」と呼ばれる、データのレイアウトに関する情報を、Excel出力する tFileOutputExcel にも設定しなければなりません。出力側のメタデータは作成していませんが、ここではメタデータを使わない場合の設定方法をご説明します。

コンポーネント間のデータフロー接続

コンポーネント間のデータフロー接続

設定したいコンポーネント(ここではtFileOutputExcel)を選択し、デザインビュー下段のタブ「コンポーネント」を開きます。このコンポーネントはファイル出力タイプですのでファイルパスを、Excelを扱うことからExcel 2007形式(xlsx)で出力するかどうか、出力結果にヘッダー(列の見出し)を含めるか、などの設定ができるようになっています。

tFileOutputExcel の設定

tFileOutputExcel の設定

「コンポーネント」タブを下にスクロールすると出てくるのが「スキーマ」です。下の画面ショットの赤枠のボタンをクリックすると、両コンポーネントが持つスキーマの一覧が確認できます。

スキーマの編集

スキーマの編集

出力側の「tFileOutputExcel」側のスキーマは、入力側の「標準地域コード(tFileInputDelimited)」と矢印で接続した時点で自動的にセットされます。セットされる内容は、入力側コンポーネントが持つスキーマです。

スキーマ

スキーマ


6. CSVを読み込むコンポーネントと、Excelを書き出すコンポーネントが矢印で接続されたので、これでジョブの実行が可能になります。画面下段の「実行(ジョブ t001_Samplejob)」を開き、「実行」ボタンをクリックするだけでジョブが起動します。

ジョブの実行

ジョブの実行

今回の処理のフローは大変シンプルなのですぐに処理は終わります。処理が正常終了すると、「実行」タブの中でジョブが終了したことを示すメッセージが表示されます。

ジョブの実行と正常終了

ジョブの実行と正常終了

ジョブの実行後、先に tFileOutputExcel で指定したファイルパスに新しいExcelファイルが作成されていることを確認できます。開くことも可能です。

作成されたExcelファイル

作成されたExcelファイル

仮に、出力済みのExcelファイルを開いたまま、ジョブを再実行するとエラーになります。これは、Excelファイルの排他機能により「ファイルが開けない」状態になっているためです。エラーになると、画面下段の「実行」タブには、Javaの例外トレースとして出力されます。エラー部分は赤文字に加工されています。

ジョブのエラー終了

ジョブのエラー終了

 

以上で、簡単なジョブ作成の説明は終了です。


Sponsored Link

関連記事

Talend Open Studio で簡単なジョブの作成(前半)

Talend Open Studioで簡単なサンプルジョブの作り方をご説明します。 これまで、

記事を読む

PAGE TOP ↑