Talend Data Integration でのエラー処理の基本
なぜエラー処理を実装する必要があるのか
Talend Open Studio Data Integration で、基本的なエラー処理をどう実装するか解説していきます。どのようなプログラムや処理であれ、全てにおいてエラー処理は実装すべきです。エラー処理のないプログラムはとてもマナーが悪いと言えるでしょう。例えば Windows でエラーが発生すると必ずエラーメッセージが表示されて何が起きたのかユーザーに知らせてくれます。しかしもしエラー処理がないと、エラーが発生しても何もメッセージが表示されず、突然 Windows が動かなくなってしまうなんてことになってしまいます。エラー処理を実装すれば、エラーが発生しても結果的に問題が何だったのかを知ることができ、今後の問題の解決に役立ちます。エラー処理は必ず実装しましょう。
[関連記事]
Talend Open Studio for Data Integration でのジョブ作成方法Talend Open Studio for Data Integration で Oracle 接続が失敗あるいは遅い
サンプルアプリケーションを作成する
abc,def,ghi 123,456,789
tFileInputDelimited コンポーネントでエラーを発生させてみる
また画面にエラーメッセージが表示されているだけですので、エラーが発生していることは分かりますがこのままではメッセージが表示されて処理が終わってしまっています。
これらの問題を解決するために、tFileInputDelimited コンポーネントの設定で "Die on error" というチェックを ON にしてみましょう (下の図の緑枠)。これを ON にすると、何らかのエラーが発生した際に後続の処理を行わずにそのままエラーとする挙動に変わります。
"Die on error" という設定を ON にした状態で、ジョブを実行してみましょう。下の図のように tLogRow コンポーネントは呼び出されず、後続の処理が実行されずにエラーによって処理が終了したことが分かります。また先程より詳細なエラーメッセージが画面に表示されていることが分かります (Java の Exception メッセージが表示されています)。
tLogCatcher コンポーネントでエラーを捕捉する
次にエラーをどうにかして捕捉し、エラーメッセージを捕まえられるようにしてみます。このようなエラーメッセージを捕まえる処理の為に用意されたコンポーネントが tLogCatcher です。tLogCatcher は捕捉したエラーメッセージを何らかのコンポーネントに出力する必要があるため、ここでは tLogRow を使ってみます。ジョブは次のようになります。
tFileInputDelimited コンポーネントと tLogCatcher コンポーネントがつながっていませんが、これでも問題ないのです。tLogCatcher はジョブで発生したエラー全てを捕捉してくれるからです。
ではこの状態でジョブを実行してみましょう。すると tFileInputDelimited コンポーネントに接続された tLogRow は実行されず、発生したエラーが tLogCatcher で補足されます。そのまま tLogCatcher コンポーネントが実行され、接続された tLogRow が実行されてエラーメッセージが表示されます。
tLogCatcher 経由で出力されたエラーメッセージ (上の図の緑枠で囲まれた部分) には、エラー発生日時やエラーが発生したジョブの名前 (test)、エラーが発生したコンポーネントの名前 (ここでは tFileInputDelimited_1)、Java Exception の内容、エラーメッセージ等が表示されています。
こうして捕捉したエラーの内容は、ファイルに出力したり必要に応じてメールで送ったりすることでエラーが起きたことを知ることが出来ます。
今回は Talend Open Studio Data Integration の基本的なエラー処理について見てきました。次回以降、様々なエラー処理の方法を解説していきます。