Help us understand the problem. What is going on with this article?

Talendコンポーネント活用(5)コンポーネントを自作する

Talendのコンポーネントを自作する

以前に標準コンポーネントでは実現できない処理をカスタムコンポーネントで使用する方法を紹介しましたが、今回はコンポーネントを作成する方法を紹介いたします。

Talendバージョン7以降ではコンポーネント作成手法が変更

Talendのバージョン6以前ではTalendStudioにComponent Designerという機能が付随されており、これを使ってコンポーネントの作成ができるようになっていました。
しかしバージョン7以降ではComponent Designerが廃止され、EclipseやIntelliJなどのJava統合開発環境で開発する方法に変更されました。

開発環境準備

コンポーネントの開発にはTalend Component Kitが必要になりますので、プラグインが利用可能なIntelliJを使用します。
IntelliJを起動して空のプロジェクトを作成し、メニューのファイルから設定画面を開き、プラグインのマーケットプレイスの検索タブからTalendを入力するとTalend Component Kitが表示されますので、これを選択してインストールしてIntelliJを再起動します。
なお、JavaはJava JDK1.8.xが必須となります。

プロジェクトの新規作成

IntelliJ IDEA へようこそ画面からプロジェクトの新規作成をクリックし、Talend Component Kitを選択して次へをクリックします。
00_新規プロジェクト_Talend Component Kit選択.jpg
下図のTalend STARTER TOOLKITが表示されます。
01_STARTER TOOLKIT_開始直後.jpg

メタデータの定義

Talend STARTER TOOLKIT画面ではコンポーネントとプロジェクトのメタデータを定義します。
今回は下図の内容を設定します。
02_STARTER TOOLKIT_メタデータ入力後.jpg
各項目を入力し画面左側の③Add A ComponentをクリックするとConfigration画面が表示されます。
03_STARTER TOOLKIT_Add_Component_クリック直後.jpg

コンポーネントの標準定義設定

Configration画面ではコンポーネントの名前と入出力設定を行います。
今回は下図のように名前のみをLoggerに変更し入出力はデフォルト設定で行います。
04_STARTER TOOLKIT_Add_Component_Logger入力後.jpg
次へをクリックすると下図のプロジェクト名と保存場所の設定画面が表示されますので、必要に応じて変更して完了ボタンをクリックします。
06_プロジェクト保存場所.jpg

プロジェクトの確認

STARTER TOOLKITが完了するとIntelliJのプロジェクト画面に移行します。
この時点でコンポーネントの作成に必要な最低限の設定は完了しています。
プロジェクトからLoggerProcessor.javaを開くと、コンポーネント作成に必要なコードの下地が既に作成されています。
07_プロジェクト保存後のLoggerProcessor.jpg

コンポーネントのコンパイルとデプロイ

この時点では特に何も機能しないコンポーネントではありますが、TalendOpenStudioへのデプロイまで実行してみます。
IntelliJのターミナルでmvnw clear installを入力してコンパイルを実行します。
08_IntelliJ_ターミナル_mvnwコマンド.jpg
下図のようにコンパイルが実行され正常に終了します。
09_IntelliJ_ターミナル_mvnwコマンド実行後.jpg
続いて、mvnw talend-component:deploy-in-studio -Dtalend.component.studioHome="C:\Talend\7.1.1_TOS_DI"を入力してTalendOpenStudioへのデプロイを実行します。
ダブルクォーテーションで囲まれているパスには、デプロイするコンポーネントを使用するTalendOpenStudioのホームのパスを設定します。
10_TalendOpenStudioへのデプロイコマンド入力後.jpg
下図のようにデプロイが実行され正常に終了します。
11_TalendOpenStudioへのデプロイコマンド実行後.jpg

TalendOpenStudioから作成したコンポーネントを使用する

デプロイ先に指定したTalendOpenStudioを起動して空のジョブを作成します。
PaletteのMiscを開くと、STARTER TOOLKITのメタデータで定義したSampleFamilyが表示され、デプロイしたコンポーネントSampleFamilyLoggerが使用できるようになっていますので、これをジョブに配置して使用できることを確認します。
12_TalendOpenStudioでジョブからコンポーネント使用.jpg

入力内容を表示するコードを追加する

このままでは実行しても見た目の結果が何もないコンポーネントなので、入力内容を表示するコンポーネントに変更します。
TalendOpenStudioを終了してIntelliJに戻り、LoggerProcessor.javaを開いて@ElementListenerを探して以下の2行を追加します。
//Log to the console
System.out.println("Input["+defaultInput+"]");
13_Inputを表示するコードを追加.jpg
先ほどと同様にターミナルからコンパイルとデプロイを実行します。
再びTalendOpenStudioを起動して、先ほどのジョブを開いてコンポーネントのInput側にtFileInputDelimitedeを追加してジョブを実行すると、実行結果にファイルからの入力内容が表示されます。
14_出力追加後のジョブ実行結果.jpg

まとめ

IntelliJとTalend Component Kitを使用することにより、簡単にコンポーネントの下地を作成することができました。
次回はもう少し深堀してコンポーネントを作成したいと考えてます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした