[Talend]tWarnを利用してジョブの警告をハンドリングする

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tWarn」を利用したジョブの警告ハンドリングを紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。

tWarnについて

「tWarn」を利用するとジョブに対して警告を発生させることができます。これを「tLogCatcher」を利用してハンドリングすることができます。

「tWarn」コンポーネントのTalend Helpページはこちらです。

tWarn

なお「tLogCatcher」については、下記の記事でご紹介していますのでご参照ください。

[Talend]tLogCatcherを利用してジョブの例外をハンドリングする | DevelopersIO

では、具体的に以下で解説していきます。

ジョブの説明

「tWarn」で意図的に警告を発生させて「tLogCatcher」で「tWarn」をハンドリングをし、「tLogRow」で警告内容を出力しています。また、その後に「tJava」で「tWarn」を通過後も処理が継続されることを確認しています。

「tWarn」コンポーネントの設定

「tWarn」コンポーネントでは、「警告メッセージ」、「コード」、「優先度」の3つを設定して警告を発生させています。今回はすべてデフォルトの値のままにしています。

警告メッセージ

「tLogCatcher」におけるmessageカラムに渡されるメッセージの値になります。

コード

「tLogCatcher」におけるcodeカラムに渡されるコードの値になります。

優先度

「tLogCatcher」におけるpriorityカラムに渡される優先度の値になります。なお、優先度と値の関係は以下の通りです。

優先度
トレース 1
デバッグ 2
情報 3
警告 4
エラー 5
致命的 6

「tLogCatcher」コンポーネントの設定

「tLogCatcher」は以下のように設定し「tWarn」をハンドリングするように設定しました。

こちらのコンポーネントの詳細については以下の記事もご参照ください。

[Talend]tLogCatcherを利用してジョブの例外をハンドリングする | DevelopersIO

「tLogRow」コンポーネントの設定

「tLogRow」コンポーネントでは、結果が見やすいように「モード」を「縦に表示」に設定しました。

「tJava」コンポーネントの設定

「tJava」コンポーネントでは、以下のとおり標準出力にメッセージを表示させて「tWarn」コンポーネントの通過後に処理が継続されていることを確認します。

System.out.println("After Warning");

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3558
[statistics] connected
.----------------------------------.
|          #1. tLogRow_1           |
+------------+---------------------+
| key        | value               |
+------------+---------------------+
| moment     | 2019-01-15 10:55:31 |
| pid        | wghHRg              |
| root_pid   | wghHRg              |
| father_pid | wghHRg              |
| project    | SANDBOX             |
| job        | tWarn               |
| context    | Default             |
| priority   | 4                   |
| type       | tWarn               |
| origin     | tWarn_1             |
| message    | this is a warning   |
| code       | 42                  |
+------------+---------------------+

After Warning
[statistics] disconnected

まずはじめに「tWarn」によって発生した警告が「tLogCatcher」によってハンドリングされることで、警告内容が「tLogRow」によって表示されています。その後に処理が継続され「tJava」による標準出力へのメッセージ出力のAfter Warningが表示されていることが分かります。

まとめ

以上、「tWarn」コンポーネントの紹介でした。

ジョブを実行する場合に「エラーでジョブを停止するまでもないが警告は発生させたい」というケースなどに利用できるコンポーネントだと思います。

それでは!