ジョブのビルド方法

Talend Open Studio for Data Integration ユーザーガイド

EnrichVersion
5.6
EnrichProdName
Talend Open Studio for Data Integration
task
ジョブデザインと開発
EnrichPlatform
Talend Studio

[Build Job] (ジョブのビルド)機能を使用すると、Talend Studioとは独立に任意のサーバー上で、ジョブをデプロイおよび実行できます。

ジョブをビルドする機能は、.batおよび.shだけでなく、コンテキストパラメーターファイルまたはその他の関連ファイルを含めて、ジョブの実行に必要なすべてのファイルをアーカイブに追加します。

デフォルトでは、ジョブをビルドする際に、すべての必要なjarは.batまたは.shコマンドに含まれています。多数のjarが関連する複雑なジョブの場合、オペレーティングシステムによってはバッチコマンドの文字数がコマンド長の制限を超える可能性があります。この制限によってバッチコマンドの実行が失敗することを回避するため、ジョブをビルドする前に、[Window] (ウィンドウ) > [Preferences] (環境設定)に移動して[Talend] > [Import/Export] (インポート/エクスポート)を選択し、[Add classpath jar in exported jobs] (エクスポートジョブにクラスパスjarを追加)チェックボックスを選択して、ビルドされたジョブに追加されるclasspath.jarでjarを包みます。

ジョブをビルドするには、次の手順を実行します。

  1. [Repository] (リポジトリ) ツリービューでビルドしたいジョブを右クリックし、[Build Job] (ジョブのビルド)を選択して[Build Job] (ジョブのビルド)ダイアログボックスを開きます。

    注記

    [Build Job] (ジョブのビルド)ダイアログボックスで および のボタンをそれぞれクリックして、Talend Studioで作成したすべてのジョブのツリービューの表示/非表示を直接切り替えることができます。Studioツリービューで以前に選択したジョブは、選択したチェックボックス付きで表示されます。これにより、エクスポート対象の選択アイテムを修正する際に、ダイアログボックスを閉じてTalend Studio[Repository] (ツリービュー)に戻って修正せず、直接ダイアログボックスから操作できます。

  2. [To archive file] (ファイルのアーカイブ先)フィールドで、ビルドしたジョブを保存するディレクトリまで移動します。

  3. 複数バージョンのジョブが作成されている場合、ビルドするジョブのバージョン番号を[Select the Job version] (ジョブバージョンの選択)エリアから選択します。

  4. [Standalone Job] (スタンドアロンジョブ)、[Axis Webservice (WAR)][Axis Webservice (Zip)][JBoss ESB][Petals ESB]、および[OSGI Bundle For ESB] (ESB用OSGIバンドル) のリストから [Build Type] (ビルドタイプ) を選択します。

    データサービスジョブにtRESTClientまたはtESBConsumerコンポーネントが含まれ、コンポーネント内でサービスレジストリ、サービスロケーター、サービスアクティビティモニターのいずれも有効でない場合、データサービスジョブは[OSGI Bundle For ESB] (ESB用OSGIバンドル)または[Standalone Job] (スタンドアロンジョブ)としてビルドすることができます。サービスレジストリ、サービスロケーター、またはサービスアクティビティモニターが有効な場合、tRESTClientまたはtESBConsumerコンポーネントを含むデータサービスジョブは[OSGI Bundle For ESB] (ESB用OSGIバンドル)としてのみビルドすることができます。

  5. ターゲットディレクトリ内でアーカイブファイルを自動的に抽出する場合は、[Extract the zip file] (zipファイルの抽出)チェックボックスを選択します。

  6. [Options] (オプション)エリアで、アーカイブファイルに追加するファイルタイプを選択します。ジョブの実行に必要なファイルタイプに対応するチェックボックスは、デフォルトで選択されています。ビルドするものに合わせて、これらのチェックボックスをクリアできます。

    オプション

    説明

    Shell launcher (シェルランチャー)

    このチェックボックスをオンにして、ビルドしたジョブの起動に必要な.bat.shファイルをエクスポートします。

    • [All] (すべて): .batおよび.shファイルをエクスポートします。

    • [Unix]は、.shファイルをエクスポートします。

    • [Windows]は、.batファイルをエクスポートします。

    Context scripts (コンテキストスクリプト)

    このチェックボックスを選択すると、対応するリストで選択したものだけでなく、"すべての"コンテキストパラメーターをエクスポートします。

    注記

    1つのコンテキストのみをエクスポートするには、適切なコンテキストパラメーターを保持している.batまたは.shファイルを含めて、[Context scripts] (コンテキストスクリプト)からニーズに合ったコンテキストを選択します。その後、必要に応じて.batおよびshファイルを編集して、コンテキストタイプを手動で修正できます。

    Apply to children (子に適用) リストから選択したコンテキストをすべての子ジョブに適用する場合に、このチェックボックスを選択します。
    Java sources (Javaソース) このチェックボックスをオンにして、ジョブデザイン時にジョブが生成したJavaクラスを含む.javaファイルをエクスポートします。
    Items (アイテム) / Source files (ソースファイル)

    このチェックボックスを選択して、.itemおよび.propertiesファイル、JavaおよびTalendソースなど、ジョブの実行中にジョブが使用するソースをエクスポートします。

    注記

    [Items] (アイテム)または[Source files] (ソースファイル)のチェックボックスを選択すると、他のマシンにインストールされたTalend Studio内でビルドされたジョブを再利用できます。これらのソースファイルは、Talend Studio内でのみ使用されます。

  7. 必要に応じて、[Override parameters' values] (パラメーターの値の上書き)ボタンをクリックします。

    開いたウィンドウで、コンテキストパラメーターおよびリスト内で選択したジョブコンテキストと値を更新、追加、または削除できます。

  8. [Finish] (終了)をクリックして変更を確定し、ビルド操作を完了してダイアログボックスを閉じます。

定義された場所にジョブ用のzipファイルが作成されます。

注記

ビルドするジョブがユーザールーチンを呼び出し、そのルーチンがユーザールーチンと同じ名前のパブリッククラスと並行して、1つ以上の追加Javaクラス群を含んでいる場合には、この追加クラスまたはクラス群はエクスポートされるファイルには含まれていません。このようなクラスをエクスポートするには、ルーチン名のクラス内に内部クラスとして含めておく必要があります。ユーザールーチンの詳細は、ユーザールーチンの管理を参照してください。クラスおよび内部クラスの詳細は、関連するJavaマニュアルを参照してください。

ジョブをスタンドアロンジョブとしてビルドする方法

POJO (Plain Old Java Object)をエクスポートするケースで、他のマシンにインストールされたTalend Studio内でジョブを再利用する場合には、[Items] (アイテム)チェックボックスを選択していることを確認してください。これらのソースファイル(.itemおよび.properties)は、Talend Studio内でのみ必要とされます。

コンテキストを提示された際に、リストからコンテキストを1つ選択します。次に[Context scripts] (コンテキストスクリプト)チェックボックスの下にある[Override parameters' values] (パラメーターの値の上書き)ボタンをクリックすると、開いたウィンドウには選択したコンテキストのすべてのパラメーターがリストされます。このウィンドウで、選択したコンテキストをニーズとして設定できます。

リスト内で選択されたものに加えて、すべてのコンテキストパラメーターファイルがエクスポートされます。

注記

エクスポート後、コンテキストの選択情報は.batまたは.shファイルに、コンテキスト設定はコンテキストの.propertiesファイルにそれぞれ格納されます。

ジョブをWebサービスとしてビルドする方法

[Build Job] (ジョブのビルド)ダイアログボックスで、選択ジョブをWebサービスアーカイブとしてビルドするためにビルドタイプを変更できます。

Webアプリケーションで使用するアーカイブタイプを選択します。

アーカイブタイプ

説明

WAR

このオプションは読み取り専用です。実際に、生成されたWARアーカイブはWebアプリケーションから実行またはデプロイする際に必要なすべての設定ファイルを含んでいます。

ZIP

すべてのオプションが利用可能です。Webアプリケーションの構成ファイルがすべて設定されている場合、適切なコンテキストパラメーターの設定と、クラスのアーカイブへのエクスポートのみを実行できます。

アーカイブの作成後、WARまたはZIP(または解凍したZIPファイル)から取り出した適切なクラスをWebアプリケーションサーバーの適切な場所に配置します。

ジョブをデプロイするために使用するURLは、通常、次のようになります:

http://localhost:8080/Webappname/services/JobName?method=runJob&args=null

ここでパラメーターの意味は次のようになります。

URLパラメーター

説明

http://localhost:8080/

Webアプリケーションに対応するホストおよびポートを入力します。

/Webappname/

Webアプリケーションの実際の名前を入力します。

/services/

Webサービスを呼び出す標準的な用語として"services"と入力します。

/JobName

実行するジョブの正確な名前を入力します。

?method=runJob&args=null

ジョブを実行するメソッドはRunJobです。

Webアプリケーション呼び出しからの戻り値は、エラーが無い場合が0で、エラーがある場合は0以外の値です。ジョブをWebサービスとして作成してビルドし、ビルドしたジョブをブラウザから呼び出す実際の例については、ジョブをWebサービスとしてビルドする例を参照してください。

tBufferOutputコンポーネントは、このタイプのデプロイ用に特別に設計されました。このコンポーネントに関する詳細情報については、『Talend Open Studioコンポーネント Reference Guide』を参照してください。

ジョブをWebサービスとしてビルドする例

このシナリオでは、まず.txtファイルを作成し、そのファイルに現在の日付と名および姓を書き込む単純なジョブを説明しています。次にこのジョブをWebサービスとしてビルドする方法を示します。そして最後に、ビルドしたジョブをWebサービスとしてブラウザから呼び出します。Webサービスとしてビルドしたジョブは、オペレーティングシステムから与えられた"リターンコード"を返します。

ジョブを作成するには、次の手順を実行します。

  1. tFixedFlowInputおよびtFileOutputDelimitedコンポーネントを[Palette] (パレット)からデザインワークスペースにドロップします。。

  2. [Row] (行) > [Main] (メイン)リンクを使って、tFixedFlowInputtFileOutputDelimitedに接続します。

  3. デザインワークスペースで[tFixedFlowInput]を選択し、[Component] (コンポーネント)タブをクリックしてtFixedFlowInputの基本設定を定義します。

  4. [Schema] (スキーマ)を[Built-In] (組み込み)に設定し、[Edit Schema] (スキーマの編集)の横にある [...]ボタンをクリックして内部変数から作成するデータ構造を記述します。このシナリオでは、スキーマは、[now] (現時点)、[firstname] (名)、および[lastname] (姓)の 3 つのカラムで構成されます。

  5. [+] ボタンをクリックして、3つのパラメーター行を追加して変数を定義します。次に[OK] をクリックしてダイアログボックスを閉じ、システムからの確認に対して変更の伝播を受け入れます。

    3つの定義されたカラムがtFixedFlowInput[Basic settings] (基本設定)ビューの[Values] (値)テーブルに表示されます。

  6. 3つの定義カラムのそれぞれの[Value] (値)セルでCtrl+Spaceを押してグローバル変数リストにアクセスし、[now] (現時点)、[firstname] (名)、および[lastname] (姓)の各カラムに対して、それぞれTalendDate.getCurrentDate()][talendDatagenerator.getFirstName]、および[talendDataGenerator.getLastName]を選択します。

  7. [Number of rows] (行数)フィールドに生成する行数を入力します。

  8. デザインワークスペースで[tFileOutputDelimited]を選択し、[tFileOutputDelimited][Component] (コンポーネント)タブをクリックして出力ファイルまで移動し、そのパスを[File name] (ファイル名)フィールドに設定します。必要に応じて他のプロパティを定義します。

F6を押してジョブを実行する場合は、設定した出力ファイルに現在の日付、名、姓字を含む3行が書き込まれます。

ジョブをWebサービスとしてビルドするには、次の手順を実行します。

  1. [Repository] (リポジトリ)ツリービューで上記で作成したジョブを右クリックし、[Build Job] (ジョブのビルド)を選択します。[Build Job] (ジョブのビルド)ダイアログボックスが表示されます。

  2. [Browse...] (参照...)ボタンをクリックして、ジョブをアーカイブするディレクトリを選択します。

  3. [Job Version] (ジョブバージョン)エリアで、Webサービスとしてビルドするジョブのバージョンを選択します。

  4. [Build type] (ビルドタイプ)エリアでWebアプリケーションで使用するビルドタイプ(この例ではWAR)を選択し、[Finish] (終了)をクリックします。[Build Job] (ジョブのビルド)ダイアログボックスが表示されなくなります。

  5. WARフォルダーをコピーしてTomcatのWebアプリケーションディレクトリに貼り付けます。

ジョブをブラウザから呼び出すには、次の手順を実行します。

  1. ブラウザに次のURLを入力します: http://localhost:8080//export_job/services/export_job2?method=runJob。ここで"export_job"は、TomcatにデプロイされたWebアプリケーションの名前で、"export_job2"はジョブの名前です。

  2. [Enter] をクリックして、ブラウザからジョブを実行します。

    Webアプリケーションからのリターンコードは、エラーが無い場合が0で、エラーが発生した場合は1です。

    tBufferOutputコンポーネントを使用して、ジョブをWebサービスとして作成してビルドする実際の例については、『Talend Open Studioコンポーネント Reference Guide』のtBufferOutputコンポーネントを参照してください。

ジョブをJBoss ESBとしてビルドする方法

Talend Studioでは、Talendジョブをメッセージエンジン(バス)上で実行するために、JBoss ESB (Enterprise Service Bus)へのサービスとしてビルドすることができます。』を参照してください。

警告

ジョブをJBoss ESBサーバー上にデプロイできるようにビルドするためには、JBoss ESB固有のjarがJavaライブラリにインストールされていること、およびTalend StudioのModules (モジュール)ビューに表示されることを確認してください。Module (モジュール)ビューに関する詳細は、『Talend インストレーションガイド』を参照してください。

[Build Job] (ジョブのビルド)ダイアログボックスでビルドタイプを変更すると、選択したジョブをESBアーカイブとしてビルドできます。その後、ビルドしたジョブをJBoss ESBサーバー上にデプロイできます。

ジョブをESB上でビルドするには、次の手順を実行します。

  1. [Job Version] (ジョブバージョン)エリアで、JBoss ESBサーバー上で実行するジョブのバージョンを選択します。

  2. [Build type] (ビルドタイプ)エリアの [Select the build type] (ビルドタイプの選択)リストから、[JBoss ESB (Deprecated)] (JBoss ESB(非推奨))を選択します。

  3. [Options] (オプション)エリアで、アーカイブに追加するファイルタイプを選択します。[Context scripts] (コンテキストスクリプト)に複数のコンテキストが表示される際は適切なものを選択します。リストから選択したコンテキストをすべての子ジョブに適用する場合には、[Apply to children] (子に適用)チェックボックスを選択します。

  4. .item.properties、およびジョブとルーチンのJavaソースなど、ジョブの実行中にジョブが使用するソースをエクスポートするには、[Source files] (ソースファイル)チェックボックスを選択します。

    注記

    [Source files] (ソースファイル)のチェックボックスを選択する場合、エクスポートされたジョブを他のマシンにインストールされたTalend Studio内で再利用できます。これらのソースファイルは、Talend Studio内でのみ使用されます。

  5. [ESB Export type] (ESBエクスポートタイプ)リスト内で[JBoss MQ]または[JBoss Messaging] (JBossメッセージ) のどちらかを選択します。

  6. [Service Name] (サービス名)フィールドに、ジョブをデプロイするサービスの名前を入力します。

  7. [Category] (カテゴリ)フィールドに、ジョブをデプロイするサービスのカテゴリを入力します。

  8. [Message Queue Name] (メッセージキュー名)フィールドに、ジョブをデプロイするために使用するキューの名前を入力します。

  9. [To archive file] (ファイルのアーカイブ先)フィールドの横にある[Browse...] (参照...)ボタンをクリックして、ジョブをエクスポートするアーカイブファイルまで移動してそのファイルのパスを設定します。[Finish] (終了)をクリックします。

    ダイアログボックスが閉じます。ビルド操作進行状況のパーセントを示す進行状況インジケーターが表示されます。ジョブは選択したアーカイブ内にビルドされます。

ESBアーカイブをデプロイディレクトリにコピーしてサーバーを起動すると、ジョブは自動的にデプロイされ、ESBサーバー上での実行準備ができます。

ジョブをPetals ESBとしてビルドする方法

Talend Studioでは、Talendジョブをメッセージエンジン(バス)上で実行するために、Petals ESB (Enterprise Service Bus)へのサービスとしてビルドすることができます。』を参照してください。

TalendとPetals ESBの統合

Talendでは、Petals ESB上でサービスをスムーズにビルドするための手法を提供しており、次のことが容易になります。

  • バス上でのアプリケーションの統合:これによりエンタープライズ内でシステムおよびアプリケーションを統合できるようになります。

  • サービスインタラクション:ESBはサービス間の接続を提供します。これによりさまざまなインタフェースを持つサービスが通信できるようになります。

JBI (Java Business Integration)は、SOA (Service-Oriented Architecture)を実装し、TalendジョブをPetals ESB上にエクスポートする際に使用するアプローチです。

Petals ESBは、BC (Binding Components)およびTalend SE (Service Engine)を使って次の機能を提供しています: 前者はFileTransfer、Webサービス、MOMを含む異なるタイプのサービスに必要なアクセスメソッドを提供し、後者はサービスをデプロイするエンジンを提供します。PetalsとTalendジョブ間のインタラクションに関する詳細情報は、http://doc.petalslink.com/display/petalscomponents/A+Simple+Talend+Jobを参照してください。

TalendおよびPetals ESBの統合により、Talend Studioで設計したジョブをPetals ESB上で実行できます。詳細は、ジョブのPetals ESBへのビルドを参照してください。情報とデータをジョブに受け渡し、ジョブから情報とデータを取得するためのメカニズムがいくつか提供されています。

Talend StudioおよびPetals ESBを使用して、Petalsと特定の相互作用のないジョブを実行することができます。以下のような処理が可能です。

  • コンテキストをサービスのWSDLへのパラメーターとしてエクスポートする

  • 添付ファイルをジョブに受け渡す

  • ネイティブパラメーターおよびオプションをジョブに受け渡す

  • ジョブの実行結果を取得する

ジョブのPetals ESBへのビルド

[Build Job] (ジョブのビルド)ダイアログボックスから、選択したジョブをPetals ESBアーカイブとしてビルドできます。その後、エクスポートされたジョブをバス(メッセージエンジン)上で実行できます。

ジョブをPetals ESBアーカイブとしてビルドするには、次の手順を実行します。

  1. [Repository] (リポジトリ)ツリービューでビルドするジョブを右クリックし、コンテキストメニューから[Build Job] (ジョブのビルド)を選択します。

    [Build Job] (ジョブのビルド)ダイアログボックスが表示されます。

  2. [To archive file] (ファイルのアーカイブ先)フィールドで、ジョブをビルドするアーカイブファイルまで移動してそのファイルのパスを設定します。

  3. [Select the Job version] (ジョブバージョンの選択)リストからビルドするジョブバージョンを選択します。

  4. [Build type] (ビルドタイプ)エリアの [Select the build type] (ビルドタイプの選択)リストから、[Petals ESB (Deprecated)] (Petals ESB(非推奨))を選択します。

    [Options] (オプション)エリアの次の3つのオプションはデフォルトで選択されています。[Singleton job] (単一ジョブ)および[Source file] (ソースファイル)。他のオプションも必要に応じて選択できます。

    次の表で、エクスポートオプションを説明します。

    オプション

    説明

    Singleton job(単一ジョブ)

    ジョブを単独でエクスポートします。単一ジョブは、Petals ESB内の特定のTalendサービスエンジン上で、同時に1インスタンスのみを実行できます。

    Generate the end-point(エンドポイントの生成)

    デプロイ時にエンドポイントを生成します。このオプションを選択しない場合、エンドポイント名はジョブ名にEndpointのサフィックスを付けたものになります。

    Validate Petals messages(Petalsメッセージの検証)

    WSDLに対するすべてのメッセージ/要求を検証します。

    注記

    このオプションを選択すると、システムパフォーマンス(ディスクアクセス)が減少します。

    Source files(ソースファイル)

    生成されたサービスユニットにソースファイルを組み込みます。

    Jobs contexts(ジョブコンテキスト)

    デフォルトでジョブが使用するコンテキストを選択する元になるリスト。

  5. [OK]をクリックして選択を確定し、[Context Export] (コンテキストエクスポート)ダイアログボックスを閉じます。

  6. [Build Job] (ジョブのビルド)ダイアログボックスで、 [Finish] (終了)をクリックします。

    ダイアログボックスが閉じます。ビルド操作進行状況のパーセントを示す進行状況インジケーターが表示されます。ジョブは選択したアーカイブ内にビルドされます。

    TalendジョブがPetals ESBへのサービスとしてビルドされ、このバス内で実行可能となります。

ESB用OSGIバンドルとしてジョブをビルドする方法

[Build Job] (ジョブのビルド)ダイアログボックスで選択ジョブをOSGIバンドルとしてビルドし、ジョブをTalend ESBコンテナ内にデプロイするためにビルドタイプを変更できます。

  1. 複数バージョンのジョブが作成されている場合、[Job Version] (ジョブバージョン)エリアでビルドするジョブのバージョン番号を選択します。

  2. [Build type] (ビルドタイプ)エリアで[OSGI Bundle For ESB] (ESB用OSGIバンドル)を選択して、ジョブをOSGIバンドルとしてビルドします。

    ビルドの拡張子は、Talend ESBコンテナで予想されているように、自動的に.jarに変更されます。

  3. [Browse...] (参照...)ボタンをクリックしてジョブをビルドするフォルダーを指定します。

  4. [Finish] (終了)をクリックしてジョブをビルドします。