Scénario 2 : Paramétrer une condition assertive pour l'exécution d'un Job - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
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 Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit comment paramétrer une condition assertive dans le composant tAssert afin d'évaluer si l'exécution du Job a réussi ou non. De plus, vous pouvez également trouver comment deux résultats différents d'évaluation s'affichent et comment les lire. Le scénario utilise un tAssert, mais aussi :

  • un tFileInputDelimited et un tFileOutputDelimited. Les deux composants constituent le Job principal, duquel le statut d'exécution est évalué. Pour plus d'informations sur ces deux composants, consultez tFileInputDelimited et tFileOutputDelimited.

  • un tFileCompare. Il réalise la comparaison entre le fichier de sortie du Job principal et un fichier de référence standard. Le résultat comparatif est évalué par le tAssert par rapport à la condition assertive configurée dans ses paramètres. Pour plus d'informations à propos du tFileCompare, consultez tFileCompare.

  • un tAssertCatcher. Il capture l'évaluation générée par le tAssert. Pour plus d'informations à propos du composant tAssertCatcher, consultez tAssertCatcher.

  • un tLogRow. Il vous permet de lire l'évaluation capturée. Pour plus d'informations à propos du tLogRow, consultez tLogRow.

Afin de créer le Job principal, procédez comme suit :

  • Préparez un fichier délimité .csv comme fichier source lu par votre Job principal.

  • Éditez deux lignes dans ce fichier. Les modifications n'ont pas d'importance, vous pouvez uniquement simplifier le contenu.

  • Nommez-le source.csv.

  • Dans le Studio Talend, créez un nouveau Job, que vous appellerez JobAssertion.

  • Placez un tFileInputDelimited et un tFileOutputDelimited dans l'espace de modélisation graphique.

  • Connectez- les à l'aide d'un lien Row Main afin de créer le Job principal.

  • Double-cliquez sur le tFileInputDelimited afin d'ouvrir sa vue Component.

  • Dans le champ File Name de la vue Component, renseignez le chemin d'accès à votre fichier source.csv.

  • Sélectionnez dans la liste Property Type le mode Built-In et cliquez sur le bouton [...] de l'option Edit schema afin de définir les données à passer au tFileOutputDelimited. Dans ce scénario, sélectionnez les données présentées dans le fichier source.csv que vous avez créé.

Pour plus d'informations à propos des types de schéma, consultez le Guide utilisateur du Studio Talend.

  • Définissez les autres paramètres dans les champs correspondants, selon le fichier source.csv que vous avez créé.

  • Double-cliquez sur le tFileOutputDelimited afin d'ouvrir sa vue Component.

  • Dans le champ File Name de la vue Component, renseignez le chemin d'accès à votre fichier de sortie, et laissez les autres champs comme définis par défaut.

  • Appuyez sur F6 afin d'exécuter le Job principal. Il lit votre fichier source.csv, passe les données au tFileOutputDelimited et écrit un fichier délimité de sortie, out.csv.

Continuez à modifier votre Job, afin de voir comment le tAssert évalue le statut d'exécution du Job principal.

  • Renommez le fichier out.csv en reference.csv. Ce fichier est le résultat attendu de l'écriture du Job principal.

  • Placez un tFileCompare, un tAssert et un tLogRow dans l'espace de modélisation graphique.

  • Connectez-les avec un lien Row Main.

  • Connectez le tFileInputDelimited au tFileCompare avec un lien OnSubjobOk.

  • Double-cliquez sur le tFileCompare afin d'ouvrir sa vue Component.

  • Dans la vue Component, renseignez les chemins d'accès dans les champs File to compare et Reference file correspondants, et laissez les autres champs comme définis par défaut.

Pour plus d'informations à propos du composant tFileCompare, consultez tFileCompare.

  • Cliquez ensuite sur le tAssert, puis cliquez sur l'onglet Component, au bas de l'espace de modélisation graphique.

  • Dans la vue Component, éditez la condition row2.differ==0, dans le champ expression ainsi que la description de l'assertion.

Dans le champ expression, row2 constitue le flux de données transmis du tFileCompare au tAssert, differ est une colonne du schéma du tFileCompare qui affiche si les fichiers comparés sont identiques. 0 signifie qu'aucune différence n'a été détectée entre le fichier out.csv et le fichier reference.csv par le tFileCompare. Les fichiers comparés sont donc identiques, la condition assertive est remplie, le tAssert conclut que le Job principal a été exécuté avec succès. Sinon, il conclut qu'il a échoué.

Note

La colonne differ fait partie du schéma, en lecture seule, du tFileCompare. Pour plus d'informations sur son schéma, consultez tFileCompare.

  • Appuyez sur F6 afin d'exécuter votre Job.

  • Vérifiez le résultat retourné dans la vue Run.

La console affiche les résultats de la comparaison du tFileCompare : Files are identical. Mais l'évaluation du tAssert n'est visible nulle part.

Vous avez donc besoin du composant tAssertCatcher pour capturer l'évaluation.

  • Placez un tAssertCatcher et un tLogRow dans l'espace de modélisation graphique.

  • Connectez-les à l'aide d'un lien Row Main.

  • Utilisez la configuration par défaut du tAssertCatcher dans sa vue Component.

  • Appuyez sur F6 afin d'exécuter votre Job.

  • Vérifiez les résultats présentés dans la vue Run. Vous pouvez voir que les informations sur le statut du Job ont été ajoutées :

    2010-01-29 15:37:33|fAvAzH|TASSERT|JobAssertion|java|tAssert_1|Ok|--| The output file should be identical with the reference file.

La description du JobAssertion dans la console est organisée selon le schéma du tAssertCatcher, lequel comprend des colonnes correspondant au temps d'exécution, à l'ID traité, au nom du projet, au langage du code, l'origine de l'évaluation, le résultat de l'évaluation, les informations détaillées de l'évaluation, et le message descriptif de l'assertion. Pour plus d'informations à propos du schéma du tAssertCatcher, consultez tAssertCatcher.

La console indique que le statut d'exécution du Job JobAssertion est Ok. En plus de l'évaluation, vous pouvez toujours voir les informations descriptives du JobAssertion, parmi lesquelles la description que vous avez saisie dans les Basic settings du tAssert.

Effectuez ensuite quelques opérations pour que le Job principal ne puisse générer le fichier attendu. Pour ce faire, procédez comme suit :

  • Effacez une ligne de votre fichier reference.csv.

  • Appuyez sur F6 pour exécuter votre Job à nouveau.

  • Vérifiez les résultats retournés dans la vue 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

La console indique que le statut d'exécution du Job principal est Failed (a échoué). L'explication détaillée suit peu après, Test logically failed (échec logique du test).

Vous pouvez avoir une idée du statut de votre Job : il a échoué lors de la génération du fichier attendu à cause d'un échec logique. Cet échec logique peut provenir d'une erreur logique lors de la création du Job.

Le statut et ses explications sont présentés respectivement dans les colonnes de statut et de sous-statut du schéma du tAssertCatcher. Pour plus d'informations à propos de cette colonne, consultez tAssertCatcher.