Talend ジョブオーケストレーションについて

 


📺 TalendでPre-JobとPost-Jobコンポーネントを使用する方法

TalendPre-JobPost-Jobコンポーネントを使う方法を紹介します。これらのコンポーネントは、ジョブの開始時または終了時に実行される処理を設定できます。

🛠 使用するコンポーネント

  • tPreJob

  • tPostJob

  • tFileExist(ファイルの存在確認)

  • tFileTouch(ファイル作成)


📝 手順

  1. Pre-JobとPost-Jobの基本的な使い方

    • tPreJobtPostJobコンポーネントは、ジョブ内でそれぞれ一度だけ使用できます。

    • tPreJobはジョブの開始時に実行され、tPostJobはジョブの終了時に実行されます。

  2. ファイルの存在確認

    • tFileExistコンポーネントを使って、指定したディレクトリ内にある**paramFile**というファイルが存在するかどうかを確認します。

    • ファイルが存在すれば、その内容をコンソールに表示します。

  3. 仮の処理

    • 実際の処理の間、tSleepを使って1秒間の待機時間を挟んで、ジョブ内での実行の流れをシミュレートします。

  4. Post-Jobでマーカーファイルを作成

    • ジョブの終了後に、tFileTouchコンポーネントを使ってマーカーファイルを作成します。これにより、ジョブが実行されたことを記録できます。

    • マーカーファイルには、現在の日付と時刻が**context.paramDircontext.paramFile**を使って名前に追加されます。

    • 日付と時刻は**TalendDate.formatDate関数を使ってyyyy-MM-dd_HH-mm-ss**形式で取得します。

  5. ファイル名のフォーマット

    • ファイル名には**context.paramDir(ディレクトリ)とTalendDate.formatDate(日付)を組み合わせ、さらにcontext.paramFile**(ファイル名)を付け加えます。


🖥 実行結果

  • tPreJobparamFileが存在するかチェックし、存在する場合はその内容を表示します。

  • 次に、1秒間のシミュレーションを行い、tPostJobマーカーファイルを作成します。

  • 作成されたマーカーファイルには、現在の日付と時刻が反映されており、例えば2021-09-28_11-30-00というファイル名になります。


📈 まとめ

  • tPreJobtPostJobは、それぞれジョブの開始時と終了時に実行される処理を設定できます。

  • tFileExistでファイルの存在を確認し、tFileTouchでマーカーファイルを作成して、処理が実行されたことを記録します。


📺 TalendでのMessageBoxの使い方

TalendMessageBoxを使う方法を紹介します。データストリームの中でマーカーとして使用したり、独立した形で使う方法を見ていきます。

🛠 使用するコンポーネント

  • tMsgBox(メッセージボックス)

  • tLogRow(コンソールへのデータ出力)


📝 手順

  1. データの生成

    • データ列を持つ非常にシンプルなスキーマを作成し、そのデータに2つの値を入力します。

    • その後、tLogRowコンポーネントにデータを送ります。

  2. tMsgBoxの使用

    • データの流れの中にtMsgBoxコンポーネントを挿入します。このメッセージボックスは、データストリームを通る各行に対してトリガーされ、メッセージボックスが表示されます。

    • メッセージボックスの表示は、データストリームを通過する度に呼び出されます。

  3. tMsgBoxの「無効化」

    • tMsgBoxコンポーネントは「無効化」することもできます。無効化すると、メッセージボックスは表示されなくなりますが、データはコンソールに表示されます。

    • この機能は、たとえばreject(拒否されたデータ)やその他の条件を確認する場合に便利です。

  4. 独立したメッセージボックス

    • tMsgBoxコンポーネントを独立して使用する場合もあります。最初にデータを生成した後、別のタイミングでメッセージボックスを表示することができます。


🖥 実行結果

  • ジョブを実行すると、最初のtMsgBoxがデータストリームを通過するたびに表示されます。

  • その後、tMsgBoxを無効化しても、別のタイミングで表示することができる独立したメッセージボックスを表示します。


⚙️ 実際の運用における注意点

  • メッセージボックスは、ジョブをデバッグする際に便利ですが、本番環境でジョブをデプロイする際には、無効化するか、代わりにログ出力や他の適切な通知手段に変更することをお勧めします。特に、コンソールで実行する際には、メッセージボックスはあまり有用ではありません。


📈 まとめ

  • tMsgBoxコンポーネントは、データストリームの中で条件に応じてメッセージを表示するのに使えます。

  • 無効化することで、実行中にメッセージボックスを非表示にし、データはコンソールに表示することも可能です。

  • 本番環境では、デバッグ用途で使用することが多く、実際の運用では無効化または置き換えを推奨します。

📺 Talendでデータの複製と統合の方法

Talendデータの複製統合を行う方法を紹介します。

  • データの複製(データストリームを複数の出力にコピーする)は、tReplicateコンポーネントを使用します。

  • データの統合(異なるまたは同じ値を持つ同じ形式のデータを統合する)は、tUniteコンポーネントを使用します。

🛠 使用するコンポーネント

  • tReplicate

  • tUnite

  • tRowGenerator

  • tJavaRow

  • tBufferOutput


📝 手順

  1. データの複製(tReplicate)

    • tRowGeneratorを使って、データを生成します。ここでは、ASCIIランダム文字列と空の整数列を使い、1行だけのデータを生成しています。

    • その後、このデータをtReplicateで複製します。データは複数の出力に渡り、別々の処理を施します。

  2. tJavaRowによる処理

    • tJavaRowを使い、複製されたデータに異なる処理を行います。たとえば、出力の「number」列にそれぞれ「1」と「2」を設定します。

    • 結果はコンソールに表示され、「1」と「2」が表示されます。

  3. データの統合(tUnite)

    • tUniteは、複数の入力ストリームを同じスキーマで統合します。ここでは、複製したデータストリームをtBufferOutputに渡し、メモリ内で統合します。

    • メモリにデータが書き込まれた後、tUniteを使ってデータを統合します。

  4. 実行結果

    • tReplicateによって複製されたデータが、tUniteによって統合されると、最終的にコンソールに「1」と「2」が表示され、データが統合されたことが確認できます。

  5. データの統合(tUniteの使用)

    • tUniteは、複数の入力ストリーム(同じスキーマ)を統合します。ここでは、異なるASCIIランダム文字列と「1」を持つ2行のデータを作成し、それらを統合します。

    • 統合されたデータはコンソールに表示され、異なるASCII文字列が確認できます。


⚙️ 実際の結果

  • tReplicateを使用してデータを複製し、それぞれに異なる「number」を設定しました。

  • 次に、tBufferOutputでメモリにデータを保存し、tUniteで統合しました。最終的に、コンソールに統合されたデータが表示されました。


📈 まとめ

  • データの複製は、tReplicateコンポーネントを使用して、データストリームを複数に分けて出力します。

  • データの統合は、tUniteコンポーネントを使用して、複数のデータストリームを1つにまとめます。

📺 Talendでデータの行を反復処理に変換する方法

Talendでデータの行反復処理に変換する方法と、その逆の操作を行う方法を紹介します。

  • 行を反復処理に変換するには、tFlowToIterateコンポーネントを使用します。

  • 反復処理をデータフローに戻すには、tIterateToFlowコンポーネントを使用します。

🛠 使用するコンポーネント

  • tFixedFlowInput

  • tFlowToIterate

  • tIterateToFlow

  • tMsgBox

  • tFileList


📝 手順

1. 行を反復処理に変換(tFlowToIterate)

  • tFixedFlowInputを使って、1つの「values」列に3つの値(例:one, test, 3)を設定します。

  • tFlowToIterateを使って、このデータフローを反復処理に変換します。

  • 反復処理を行うたびに、tMsgBoxを使ってメッセージボックスを表示します。ここでは、現在の反復処理で処理している値(one, test, 3)を表示します。

コードの構成

  • globalMap.getを使って、グローバル変数から値を取得します。

  • tFixedFlowInputで使用されている変数(例えばNB_LINE)も取得可能です。

  • 各反復処理において、この値をメッセージボックスに表示します。

実行結果として、反復処理が行われ、メッセージボックスにone, test, 3の順番で表示されます。

2. 反復処理をデータフローに戻す(tIterateToFlow)

  • 今度は、反復処理をデータフローに戻します。ここでは、tFileListを使って、指定されたディレクトリ(data/in)内の.txtファイルをリストアップします。

  • その後、tIterateToFlowを使って、反復処理をデータフローに変換します。

手順

  • tFileListを使い、指定されたディレクトリ内のファイルを列挙します。

  • tIterateToFlowを使って、その反復処理の情報(ファイル名やフォルダ名)をデータフローに戻します。

  • データフローを表示するために、取得したファイル名(CURRENT_FILE)とフォルダ名(CURRENT_FILEDIRECTORY)をコンソールに出力します。

実行結果として、リストアップされたファイルのフォルダ名とファイル名がコンソールに表示されます。


📈 まとめ

  • 行を反復処理に変換するには、tFlowToIterateを使用します。

  • 反復処理をデータフローに戻すには、tIterateToFlowを使用します。

  • tFlowToIterateを使うことで、行ごとの処理を反復処理に変換し、各反復ごとにメッセージボックスを表示します。

  • tIterateToFlowを使うことで、反復処理をデータフローに戻し、ファイル情報などをデータフローとして処理できます。


📺 Talendでループを作成する方法

Talendでループを作成する方法を紹介します。主に2種類のループを作成します。

  1. 有限ループ(有限回数の繰り返し)

  2. 無限ループtInfiniteLoop コンポーネントを使用)

🛠 使用するコンポーネント

  • tLoop

  • tForEach

  • tFixedFlowInput

  • tInfiniteLoop


📝 手順

1. 有限ループ

  • tLoopコンポーネントを使って、1 から 5 までの数値を1ずつ増加させていくループを作成します。このループは、5回の反復を行います。

  • ループ内で、CURRENT_ITERATION(現在の反復回数)を2倍して、偶数を出力します。例えば、2, 4, 6, 8, 10という結果が得られます。

  • この方法は、特定の数値(ここでは偶数)を生成する簡単な例です。

実行結果として、コンソールには 2, 4, 6, 8, 10 が表示されます。

2. 有限ループ(2つのループを組み合わせた例)

  • ここでは、2つの有限ループコンポーネントを組み合わせて使用します。

  • tLoopを使って、1から9までの数値を反復し、tForEachコンポーネントで、個別の値(例えば「address」と「customer」)を反復処理します。

  • そして、これらの値を組み合わせて、動的にファイル名(例:「customer1.csv」や「address9.csv」)を作成します。このファイル名は、後でファイルを検索する際に役立ちます。

実行結果として、customer1.csvからaddress9.csvまでのすべての組み合わせが作成され、コンソールに表示されます。

3. 無限ループ

  • 無限ループには、tInfiniteLoopコンポーネントを使用します。このコンポーネントは、終了条件を指定しないため、無限にループし続けます。

  • 反復ごとに、2000ミリ秒(2秒)の待機時間を挟んで、現在の日付をフォーマットしてコンソールに表示します。

  • ループを停止する方法は、プロセスを「Kill」またはコンソールで [Ctrl] + C を使用して停止します。

実行結果として、コンソールには繰り返し現在の日付が表示されます。時間が経つにつれて、秒数が増加していきます。


📈 まとめ

  • 有限ループは、tLooptForEachコンポーネントを使用して簡単に作成できます。これにより、数値を反復したり、異なる値を組み合わせて動的にファイル名を作成したりできます。

  • 無限ループは、tInfiniteLoopコンポーネントを使用して作成できます。このループは終了条件がないため、明示的に停止する必要があります。

  • Talendを使うと、反復処理を簡単に構築できるため、データ処理やファイル管理に役立つ強力なツールになります。


📺 Talendで待機する方法

Talendで待機処理を行う方法を紹介します。具体的には、tWaitForFileコンポーネントを使って、指定した条件を満たすまで待機する方法です。また、この処理にかかる時間を計測する方法も見ていきます。

🛠 使用するコンポーネント

  • tChronometerStart(時間計測用)

  • tWaitForFile(ファイルが作成されるまで待機する)


📝 手順

1. 時間計測の設定

  • 最初に、tChronometerStartコンポーネントをtPreJobコンポーネントに接続し、処理の開始時に時間計測を開始します。次に、処理終了時に時間計測を停止します。

  • tChronometerStartで計測を開始し、その後の処理時間をコンソールに出力します。これにより、処理にかかる時間を視覚的に確認できます。

2. ファイル待機処理の設定

  • 重要な部分は、tWaitForFileコンポーネントの設定です。

  • このコンポーネントは、指定したディレクトリ(ここではTalend/data/in)内に特定のファイルが作成されるのを最大5回(最大10秒間)待機します。

  • もし指定したファイルが最大回数内に見つからなかった場合、ループを終了します。

  • 逆に、ファイルが見つかると、待機時間が終了する前にプロセスを終了します。

3. 実行

  • まずは、何も操作しない場合、コンソールに「待機中」の状態が表示され、時間が経過するのを待ちます。ファイルが見つからない場合、最大10秒後に処理が終了します。

  • 次に、ファイルを作成します。実行中の状態でファイルを作成すると、コンポーネントはすぐにファイルを見つけて、待機時間が終了する前に処理を完了します。

  • 実行例:

    • 初回の実行では、ファイルが見つからず、10秒間待機した後、処理が終了します。コンソールには「ファイルが見つからなかった」という情報が表示され、合計で10秒かかりました。

    • 次に、実行中にファイルを作成すると、処理が6秒で終了し、4回目のイテレーションでファイルが見つかり、待機時間が終了する前にプロセスが完了します。


📈 まとめ

  • tWaitForFileコンポーネントを使用すると、指定したディレクトリ内にファイルが作成されるまで待機することができます。

  • 待機する時間や回数、ファイルが見つかった時に即座に処理を終了させる設定が可能です。

  • 時間計測を使用すると、処理にかかる実際の時間をコンソールで確認することができ、プロセスの効率性をチェックできます。


📺 Talendでオペレーティングシステムと連携する方法

Talendを使ってオペレーティングシステムと連携する方法を紹介します。具体的には、tServerAlivetSystemコンポーネントを使用した、シンプルな2ステップのプロセスを見ていきます。

🛠 使用するコンポーネント

  • tServerAlive:指定したホストが稼働しているかを確認

  • tSystem:コマンドラインコマンドを実行し、その出力を取得


📝 手順

1. tServerAliveコンポーネントの使用

  • まず、tServerAliveコンポーネントを使って、ホスト(ここではローカルホスト)が稼働しているかどうかをチェックします。ホスト名は、context変数として渡し、明示的なホスト名を使わずにpingを送信します。

  • このチェックにかかる最大時間は5秒に設定されています。

  • もしホストが稼働している場合、コンソールに「Server running」というメッセージを表示します。このメッセージが表示されるかどうかは、tServerAliveSERVER_ALIVE_RESULTというブール値(true または false)によって決まります。

2. tSystemコンポーネントを使ったコマンド実行

  • 次に、もしサーバーが稼働していた場合、tSystemコンポーネントを使ってシステムコマンド(ここでは「echo SERVER」)を実行します。このコマンドは、ホスト名を渡し、**"Hello world"**というメッセージを出力します。

  • コマンド内でダブルクォーテーション(")を文字列として出力するために、エスケープシーケンス「"」を使用します。

  • このコマンドの出力を、global variableに格納します。そして、その出力をtSystem_1_OUTPUTというグローバル変数から取得し、コンソールに表示します。

3. 実行結果

  • このプロセスを実行すると、コンソールには次のように表示されます:

    • Server running」:サーバーが稼働している場合

    • message from tSystem: Hello world」:システムコマンドの出力


📈 まとめ

  • tServerAliveコンポーネントを使うことで、特定のサーバーが稼働しているかをチェックできます。

  • tSystemコンポーネントを使って、コマンドラインコマンドを実行し、その結果を取得することができます。

  • この方法を使えば、Talendからシステムへのアクセスやコマンド実行が簡単に行えます。


📺 Talendでジョブ階層を作成する方法

Talendでジョブ階層を作成する方法を紹介します。具体的には、親ジョブ子ジョブを作成し、親ジョブ内で子ジョブを実行する方法を説明します。子ジョブはtRunJobコンポーネントを使用して実行されます。


🛠 使用するコンポーネント

  • tRunJob:親ジョブから子ジョブを実行する

  • tFixedFlowInput:子ジョブ内でデータを生成する

  • tBufferOutput:子ジョブのデータを親ジョブに渡す

  • tLogRow:データをコンソールに出力する


📝 手順

1. 子ジョブの作成

  • 最初に子ジョブ「hierarchyChild」を作成します。この子ジョブでは、tFixedFlowInputコンポーネントを使用して、簡単なデータを生成します。

    • 生成するデータには、**"childColumn"**という名前の文字列型のカラムを持ち、例として「child data」といったデータを挿入します。

    • また、親ジョブのコンテキスト変数を**"context.parentVar"**として子ジョブ内で参照できるようにします。この変数は実行時に親ジョブから渡されることを想定しています。

  • tLogRowコンポーネントを使って、生成したデータをコンソールに表示します。この段階ではまだ親ジョブのデータが渡されていないため、変数は空で表示されます。

2. 子ジョブのデータを親ジョブに渡す

  • 子ジョブ内でデータを親ジョブに渡すには、tBufferOutputコンポーネントを使用します。このコンポーネントはデータをメモリに保持し、親ジョブに渡す役割を果たします。

  • ここでのポイントは、tBufferOutputは1つだけにすることです。複数のコンポーネントがあると、どれを親ジョブに渡すべきかTalendは判断できません。

3. 親ジョブの作成

  • 次に親ジョブ「hierarchyMother」を作成します。ここでは、先ほど作成した子ジョブをtRunJobコンポーネントを使って実行します。

  • tRunJobでは、実行する子ジョブの名前を指定します。親ジョブ内で子ジョブを実行するために、**"Transmit whole context"**という設定を使用して、親ジョブから子ジョブにコンテキスト変数を渡します。

4. コンテキスト変数の設定

  • 親ジョブから子ジョブに渡すために、親ジョブ内でも同じコンテキスト変数「parentVar」を作成し、「mother value」の値を設定します。

  • 親ジョブから子ジョブに渡すためには、**"Transmit whole context"**オプションを有効にします。これにより、親ジョブのすべてのコンテキスト変数が子ジョブに渡されます。

5. 子ジョブのデータを親ジョブで受け取る

  • 親ジョブ内のtRunJobで、子ジョブのデータを受け取るために**"Copy Child Job Schema"**をクリックします。これにより、子ジョブから渡されるデータのスキーマが親ジョブに自動的に取り込まれます。

  • 親ジョブのtLogRowコンポーネントで、このデータをコンソールに表示することができます。

6. 実行結果

  • 親ジョブを実行すると、まず子ジョブが実行され、その結果が親ジョブに返されます。コンソールに「Server running」と表示され、子ジョブから渡されたデータも表示されます。

  • もし親ジョブから直接子ジョブを実行したい場合、子ジョブを実行するだけで親ジョブのコンソール出力も表示されます。

7. ジョブ階層の確認

  • ジョブ階層が複雑になると、ジョブの階層を確認することが重要です。親ジョブを右クリックして、「Open Job Hierarchy」を選択することで、ジョブ階層を確認できます。

  • これにより、どのジョブが親でどのジョブが子か、また階層がどのようになっているのかを視覚的に確認できます。


📈 まとめ

  • tRunJobコンポーネントを使って、親ジョブ内で子ジョブを実行することができます。

  • tBufferOutputを使って、子ジョブから親ジョブにデータを渡すことができます。

  • コンテキスト変数を使用して、親子ジョブ間でデータを共有できます。

  • 複数のジョブが階層的に構成されている場合、ジョブ階層を確認することで、どのジョブが親・子なのかを簡単に把握できます。


📺 Talendでサブジョブトリガーを使う方法

Talendでサブジョブトリガーを使用する方法を学びます。具体的には、「on subjob error」および「on subjob ok」を使って、サブジョブの実行結果に応じてトリガーを設定します。


🛠 使用するコンポーネント

  • tJava:コンソールへの出力

  • tFileOutputDelimited:データをファイルに書き出す

  • tMsgBox:メッセージボックスを表示

  • トリガー:サブジョブの実行結果に基づくアクション


📝 手順

1. サブジョブとトリガーの設定

  • サブジョブは、ランダムデータを生成し、指定されたファイルに書き出すというシンプルなものです。

  • サブジョブの結果に応じて、2つのメッセージボックスが表示されます。

    • 1つ目は、「SubJob OK」メッセージボックスで、サブジョブが正常に完了した場合に表示されます。

    • 2つ目は、「SubJob Error」メッセージボックスで、サブジョブでエラーが発生した場合に表示されます。

2. サブジョブ実行の確認

  • 最初に、正常に動作する設定で実行すると、「SubJob OK」のメッセージボックスが表示されます。

  • 次に、ファイル名を空に設定してエラーを発生させると、「SubJob Error」のメッセージボックスが表示されます。この際、エラーはインターフェースにもコンソールにも表示されます。

3. トリガーの追加

  • サブジョブトリガーは、特定の開始コンポーネントに設定できます。この開始コンポーネントは、緑色の背景で示されています。

  • トリガーを追加するには、開始コンポーネントを右クリックし、「Trigger」を選択し、**「On Subjob OK」または「On Subjob Error」**を選びます。

  • これにより、サブジョブが成功した場合やエラー発生時にトリガーされるアクションを設定できます。

4. 複数のトリガーを使用する

  • 1つのサブジョブに対して複数のトリガーを設定することも可能です。たとえば、**「SubJob Error 2」**という別のメッセージボックスを作成し、再度実行すると、2つのメッセージボックスが表示されます。

5. トリガーの順番の変更

  • トリガーが複数ある場合、接続順序は自動的に決まりますが、この順序を変更することもできます。

  • 順番を変更するには、接続を右クリックして「Modify links order」を選択し、順番を変更できます。

6. トリガーの削除と再作成

  • トリガーの順番を変更したい場合、トリガーを削除して再作成する方法もあります。これにより、望んだ順番でトリガーを実行できます。


📈 まとめ

  • サブジョブトリガーは、サブジョブが成功した場合やエラーが発生した場合に特定のアクションを実行するために使います。

  • サブジョブトリガーは、開始コンポーネントに設定し、エラー時や成功時にメッセージボックスなどを表示できます。

  • 複数のトリガーを使用して、サブジョブの状態に応じた処理を追加できます。

  • トリガーの順番を変更することもでき、プロセスを柔軟に制御できます。


📺 Talendでコンポーネントトリガーを使う方法

Talendでコンポーネントトリガーを使用する方法を学びます。ここでは、triggerComponentExampleというプロジェクトを使って、コンポーネントトリガーがどのように働くかを見ていきます。


🛠 使用するコンポーネント

  • tFileOutputDelimited:データをファイルに書き込む

  • tMsgBox:メッセージボックスを表示

  • トリガー:コンポーネントが正常に完了した場合やエラーが発生した場合に反応


📝 手順

1. コンポーネントトリガーの設定

  • このプロセスでは、ランダムなデータを生成し、それをファイルに書き込みます。

  • コンポーネントトリガーは、tFileOutputDelimitedの成功または失敗に基づいて反応します。

    • 成功の場合:「ファイルOK」のメッセージボックスを表示。

    • エラーの場合:エラーメッセージを含むメッセージボックスを表示。

2. エラー発生時のメッセージ

  • tFileOutputDelimitedコンポーネントで有効なファイル名を指定した場合、成功時に「ファイルOK」が表示されます。

  • しかし、ファイル名が無効(例えば空のファイル名)にすると、エラーが発生し、そのエラーメッセージが表示されます。例えば「ディレクトリであるため、ファイルを保存できません」というメッセージが表示されます。

3. 複数回のトリガー使用

  • コンポーネントトリガーは複数回使用できます。例えば、On Component OKトリガーを複数回設定し、それぞれに異なる順番を設定できます。

4. コンポーネントトリガーの特徴

  • コンポーネントトリガーは、Talendのほぼすべてのコンポーネントに対して使用可能です。

  • サブジョブトリガーは、サブジョブの開始コンポーネントにのみ設定できるのに対し、コンポーネントトリガーはあらゆるコンポーネントで使用できる点が異なります。


📈 まとめ

  • コンポーネントトリガーを使用すると、コンポーネントが正常に完了したか、エラーが発生したかに応じて、メッセージボックスなどのアクションを設定できます。

  • トリガーを複数回使用して、異なる順番で実行することができます。

  • コンポーネントトリガーはTalendのさまざまなコンポーネントに使用可能ですが、サブジョブトリガーはサブジョブの開始コンポーネントにのみ適用されます。


📺 Talendで条件付きトリガーを使う方法

Talendで条件付きトリガー(「ifトリガー」)の使い方を学びます。今回は「triggerIfExample」というジョブを使って、条件付きトリガーをどのように設定するかを説明します。


🛠 使用するコンポーネント

  • tRowGenerator:ランダムデータを生成

  • tJava:コンソールにメッセージを表示

  • 条件付きトリガー(ifトリガー):特定の条件が満たされた場合に実行されるトリガー


📝 手順

1. ランダムデータ生成

  • tRowGeneratorを使って、0から10行のランダムデータを生成します。このデータ自体は重要ではなく、行数を元に条件を設定します。

  • tJavaコンポーネントを使い、生成された行数に応じてメッセージを表示します。

2. 条件設定

  • if条件を使って、行数がゼロの場合と、5行以上の場合でメッセージを表示します。

  • 例えば、NB_LINE(生成された行数)と比較し、もし0行だったら「0 rows generated」と表示し、それ以外の条件では「5行以上生成された」と表示します。

3. トリガーの設定

  • tRowGeneratorコンポーネントに右クリックして、「Trigger」 > 「Run if」を選択し、条件を定義します。

  • 条件は、OutlineエリアからNB_LINEをドラッグ&ドロップし、条件(例えば、「5より大きい」)を設定します。

4. ジョブの実行

  • 条件を設定したら、ジョブを実行します。条件が満たされると、そのメッセージがコンソールに表示されます。

  • 例えば、0行が生成されると「0 rows generated」、6行が生成されると「5行以上生成された」と表示されます。


📈 まとめ

  • **条件付きトリガー(ifトリガー)**を使用することで、特定の条件が満たされた場合にのみ処理を実行できます。

  • tRowGeneratorで生成される行数を基に、条件を定義して、動的に処理を切り替えることができます。

  • これを使って、データの生成や処理を柔軟に制御することができます。



前の記事:Talend ファイル管理について

次の記事:Talend ロギング・モニタリング