ジョブ実行のアサーション条件の設定 - 7.3

ログとエラー(インテグレーション)

EnrichVersion
Cloud
7.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
ジョブデザインと開発 > サードパーティーシステム > ロギングコンポーネント
データガバナンス > サードパーティーシステム > ロギングコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > ロギングコンポーネント

このシナリオでは、ジョブ実行が成功したかどうかを評価するために、tAssertでアサーション条件を設定する方法について説明します。また、2つの異なる評価結果を表示し、読み取る方法についても説明します。このシナリオでは、tAssertのほかに、

Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントを参照してください。

  • tFileInputDelimitedtFileOutputDelimitedコンポーネントも使用します。2つのコンポーネントは、実行ステータスが評価されるメインジョブを構成します。これらのコンポーネントの詳細は、tFileInputDelimitedおよびtFileOutputDelimitedを参照してください。

  • tFileCompare. メインジョブの出力ファイルと標準参照ファイル間を比較します。tAssertにより、tAssertの設定で指定されたアサーション条件を基準に比較結果が評価されます。tFileCompareの詳細は、tFileCompareを参照してください。

  • tAssertCatcher.tAssertが生成した評価を取得します。tAssertCatcherの詳細は、tAssertCatcherを参照してください。

  • tLogRow. 取得した評価を表示できます。tLogRowの詳細は、tLogRowを参照してください。

まず、次の手順に従ってメインジョブを設計します。

  • メインジョブで読み取るソースファイルとして、区切り記号付きの.csvファイルを準備してください。

  • 列区切り記号付きファイルの2つの行を編集します。編集する内容は重要ではないので、簡単な編集を行ってください。

  • source.csvという名前を付けます。

  • Talend Studio で新しいジョブJobAssertionを作成します。

  • tFileInputDelimitedtFileOutputDelimitedをワークスペースに配置します。

  • [Row Main] (行 メイン)リンクでこれらのコンポーネントを接続してメインジョブを作成します。

  • tFileInputDelimitedをダブルクリックして、[Component] (コンポーネント)ビューを開きます。

  • [Component] (コンポーネント)ビューの[File Name] (ファイル名)フィールドで、source.csvへのパスを入力するか参照します。

  • 引き続き[Component] (コンポーネント)ビューで、[Property Type] (プロパティタイプ)[Built-In] (組み込み)に設定し、[Edit schema] (スキーマの編集)の横のをクリックして、tFileOutputDelimitedに渡すデータを定義します。このシナリオでは、作成したsource.csvに渡すデータを定義します。

スキーマタイプについては、『 Talend Studioユーザーガイド』を参照してください。

  • 作成したsource.csvに従って、対応するフィールドで他のパラメーターを定義します。

  • tFileOutputDelimitedをダブルクリックして[Component] (コンポーネント)ビューを開きます。

  • [Component] (コンポーネント)ビューの[File Name] (ファイル名)フィールドで、出力ファイルへのパスを入力するか参照します。他のフィールドはデフォルトのままにしておきます。

  • [F6]を押して、メインジョブを実行します。source.csvが読み取られ、データがtFileOutputDelimitedに渡され、列区切り記号付きファイル、out.csvが出力されます。

続いてジョブを編集して、tAssertがメインジョブの実行ステータスをどのように評価しているのかを確認します。

  • out.csvの名前をreference.csvに変更します。このファイルは、メインジョブによって出力される、予定通りの結果として使用されます。

  • tFileComparetAsserttLogRowをワークスペースに配置します。

  • これらのコンポーネントを[Row Main] (行 メイン)リンクで接続します。

  • tFileInputDelimitedtFileCompareOnSubjobOkリンクで接続します。

  • tFileCompareをダブルクリックして、[Component] (コンポーネント)ビューを開きます。

  • [Component] (コンポーネント)ビューの[File to compare] (比較するファイル)フィールドと[Reference file] (参照ファイル)フィールドに、対応するファイルパスを入力します。その他のフィールドはデフォルトのままにしておきます。

tFileCompareコンポーネントの詳細は、tFileCompareを参照してください。

  • 次に、tAssertをクリックし、ワークスペース下部の[Component] (コンポーネント)タブをクリックします。

  • [Component] (コンポーネント)ビューの[expression] (式)フィールドでアサーションrow2.differ==0を編集し、[description] (説明)フィールドでアサーションの説明メッセージを編集します。

[expression] (式)フィールドのrow2 tFileCompareからtAssertに送信されるデータフローで、differtFileCompareスキーマのカラムの1つで、比較されたファイルが同一かどうかを示します。0は、out.csvreference.csv間で相違がtFileCompareによって検出されなかったことを意味します。したがって、比較されたファイルが同一の場合、アサーション条件が満たされるので、tAssertは、メインジョブが成功したと判断します。それ以外の場合は失敗と判断します。

注:

differカラムは読み取り専用のtFileCompareスキーマ内にあります。スキーマの詳細は、tFileCompareを参照してください。

  • [F6]を押してジョブを実行します。

  • [Run] (実行)ビューに表示される結果を確認します。

コンソールには、tFileCompareの比較結果、Files are identicalが表示されます。ただし、tAssertの結果はどこにもありません。

そのため、評価の取得にtAssertCatcherが必要になります。

  • tAssertCatchertLogRowをワークスペースに配置します。

  • これらのコンポーネントを[Row Main] (行 メイン)リンクで接続します。

  • tAssertCatcher[Component] (コンポーネント)ビューでデフォルトの設定を使用します。

  • [F6]を押してジョブを実行します。

  • [Run] (実行)ビューに表示される結果を確認します。ジョブステータス情報が結果に追加されています。

    2010-01-29 15:37:33|fAvAzH|TASSERT|JobAssertion|java|tAssert_1|Ok|--|
    The output file should be identical with the reference file
    で参照してください。

コンソールのJobAssertionの説明文は、tAssertCatcherスキーマに従って編成されます。このスキーマには、実行時間、プロセスID、プロジェクト名、ジョブ名、コード言語、評価の元データ、評価結果、評価の詳細、アサーションの説明メッセージがこの順番で含まれています。tAssertCatcherのスキーマの詳細は、tAssertCatcherを参照してください。

コンソールには、ジョブJobAssertionの実行ステータスがOkであることが示されています。評価のほか、JobAssertionに関するその他の説明を確認でき、その中には、tAssert[Basic settings] (基本設定)で編集した説明メッセージが含まれます。

次に、メインジョブが予想通りのファイルの生成に失敗するように、操作を実行します。それには、実行した同じジョブで次の手順に従います。

  • reference.csvで行を1つ削除します。

  • F6を押してジョブを再び実行します。

  • [Run] (実行)ビューに表示される結果を確認します。

    2010-02-01 19:47:43|GeHJNO|TASSERT|JobAssertion|tAssert_1|Failed|Test
    logically failed|The output file should be identical with the reference
    file
    で参照してください。

コンソールには、メインジョブの実行ステータスがFailedであることが示されています。このステータスの詳細がFailedのすぐ後に続き、Test logically failedとなっています。

このようにして、現在のジョブステータスを大まかに把握することができます: 論理的失敗のため、予期されたファイルを生成できません。この論理的失敗は、ジョブ設計時の論理的ミスが原因である可能性があります。

ステータスとその説明はそれぞれ、tAssertCatcherスキーマのstatusカラムとsubstatusカラムにあります。これらのカラムの詳細は、tAssertCatcherを参照してください。