Accéder au contenu principal Passer au contenu complémentaire

Valider des données à l'aide de règles de qualité de données et d'un schéma dynamique

Le Job de ce scénario utilise le composant tDataQualityRules pour valider les données à l'aide d'une règle de qualité de données depuis Talend Cloud Data Stewardship.

Le Job utilise une règle de qualité de données en mode avancé :
if (purchase_price >= 2999) {discount_percentage == 0.2}
elseif (purchase_price >= 1999 && purchase_price < 2999) {discount_percentage == 0.15}
elseif (purchase_price >= 999 && purchase_price < 1999) {discount_percentage == 0.10}
elseif (purchase_price >= 599 && purchase_price < 999) {discount_percentage == 0.07}
else {discount_percentage == 0}
Note InformationsImportant : Vous pouvez utiliser un schéma dynamique dans le composant Standard. Les composants Apache Spark ne le supportent pas.

Configurer votre Job

Procédure

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFileInputDelimited, un tDataQualityRules et deux tLogRow.
  2. Reliez les composants suivants à l'aide de liens Main :
    • le tFileInputDelimited au tDataQualityRules,
    • le tDataQualityRules à l'un des tLogRow.
  3. À l'aide d'un lien Reject, reliez le tDataQualityRules au dernier tLogRow.
    Job utilisant un tFileInputDelimited, un tDataQualityRules et deux tLogRow.
    Note InformationsConseil : Si vous souhaitez récupérer uniquement les données valides, reliez le tDataQualityRules à un seul tLogRow, à l'aide d'un lien Main. Le second tLogRow permet de vous montrer les détails des données invalides.

Configurer le composant tFileInputDelimited

Procédure

  1. Double-cliquez sur le tFileInputDelimited pour ouvrir sa vue Basic settings.
  2. Dans le champ File name/Stream, saisissez le chemin du fichier entre guillemets doubles.
  3. Dans cet exemple, les données d'entrée sont les suivantes :
    id;price1;discount1;price2;discount2
    1;100;0.2;2000;0.1
    2;1000;0.05;4000;0.2
    3;1999;0.15;4200;0.2
    4;5000;0.2;3000;0.2
    5;300;0;30;0
    6;6000;0.2;3000;0.1
    7;price;;;
  4. Sélectionnez Built-In dans la liste Schema et cliquez sur […] près de Edit schema.
  5. Pour ajouter des colonnes, cliquez sur l'icône Add (Ajouter), puis sur OK.
    Schéma du composant tFileInputDelimited.

    Le schéma dynamique récupère les colonnes qui ne sont pas définies dans le schéma. C'est pour cette raison que vous n'avez pas besoin de définir les colonnes discount1, price2 et discount2 dans le schéma.

    Note InformationsImportant : Vous pouvez utiliser un schéma dynamique dans le composant Standard. Les composants Apache Spark ne le supportent pas.

Configurer le composant tDataQualityRules

Avant de commencer

Pourquoi et quand exécuter cette tâche

Vous avez besoin de l'autorisation Rules - View (Règles - Visualisation) pour récupérer les règles. Pour plus d'informations, consultez les Rôles utilisateur·trices prédéfinis relatifs à l'application que vous utilisez.

Procédure

  1. Sélectionnez Built-In dans la liste Output schema.
  2. Cliquez sur le bouton Sync columns afin de récupérer le schéma du composant d'entrée.
  3. Dans la liste déroulante Application, sélectionnez Data Stewardship.
  4. Saisissez l'URL vers Talend Cloud Data Stewardship : "https://tds.us.cloud.talend.com/".
    L'URL dépend de votre région Cloud : Consultez URL et régions de Talend Cloud.
  5. Pour saisir votre jeton d'accès personnel, cliquez sur le bouton [...].
  6. Pour récupérer les règles de qualité de données, cliquez sur Refresh.
    Bouton Refresh (Actualiser) près du champ DQ rule library timestamp (Horodatage de la bibliothèque de règles DQ).
    Si vous mettez à jour les règles de qualité de données dans Talend Cloud Data Stewardship, cliquez sur Refresh pour récupérer la dernière version.
  7. Cliquez sur le bouton [...] près de Configure DQ rules.
  8. Sélectionnez la règle dans DQ rule et associez les variables de règles aux colonnes d'entrée.
    Fenêtre de configuration pour associer les variables.
    Vous pouvez associer les types de données dans le Studio Talend à certains types de données dans Talend Cloud Data Stewardship. Consultez Associer des types de données.
    Si aucune règle ou colonne d'entrée n'est disponible, vérifiez que :
    • Les règles de qualité de données ont été récupérées dans DQ rule library timestamp (Horodatage des bibliothèques de règles DQ).
    • Le schéma d'entrée est correct.
    Note InformationsRestriction : Vous pouvez associer une variable de règle à une colonne uniquement. Saisissez une colonne uniquement dans Dynamic column selection.
  9. Associez davantage de variables en cliquant sur l'icône Add (Ajouter), en bas à droite de l'assistant.
  10. Sélectionnez la même règle dans DQ rule et associez les variables de règles aux colonnes d'entrée.
  11. Dans Dynamic column selection, saisissez le nom des colonnes entre guillemets doubles.
    Fenêtre de configuration pour associer les variables.
    Vous pouvez associer les types de données dans le Studio Talend à certains types de données dans Talend Cloud Data Stewardship. Consultez Associer des types de données.
    Si aucune règle ou colonne d'entrée n'est disponible, vérifiez que :
    • Les règles de qualité de données ont été récupérées dans DQ rule library timestamp (Horodatage des bibliothèques de règles DQ).
    • Le schéma d'entrée est correct.
    Note InformationsRestriction : Vous pouvez associer une variable de règle à une colonne uniquement. Saisissez une colonne uniquement dans Dynamic column selection.
  12. Cliquez sur OK pour valider la configuration.

Configurer les composants tLogRow

Procédure

  1. Double-cliquez sur les composants tLogRow afin d'ouvrir leur vue Basic settings.
  2. Dans la liste Schema, sélectionnez Built-in puis cliquez sur Sync columns.
  3. Dans la zone Mode, sélectionnez Table (print values in cells of a table).
    Configuration des composants tLogRow.

Exécuter le Job

Procédure

Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.

Résultats

Le composant tLogRow avec le lien Main retourne les prix dont le rabais correspond à la règle. Dans cet exemple, cela signifie que le rabais est correct pour price1 et price2.
.--+------+-----------------.
|         tLogRow_1         |
|=-+------+----------------=|
|id|price1|dynamic_column   |
|=-+------+----------------=|
|3 |1999  |0.15 - 4200 - 0.2|
|4 |5000  |0.2 - 3000 - 0.2 |
|5 |300   |0 - 30 - 0       |
'--+------+-----------------'
Les données invalides sont également filtrées.
.--+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|                                                                                                                                       tLogRow_2                                                                                                                                       |
|=-+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=|
|id|price1|dynamic_column   |INVALID_STATUS                                                                                                                                                                                                                                             |
|=-+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=|
|1 |100   |0.2 - 2000 - 0.1 |[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"Invalid"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"Invalid"}]}]|
|2 |1000  |0.05 - 4000 - 0.2|[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"Invalid"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"Valid"}]}]  |
|6 |6000  |0.2 - 3000 - 0.1 |[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"Valid"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"Invalid"}]}]  |
|7 |price | -  -            |[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"NE"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"NE"}]}]          |
'--+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'

Le statut NE signifie que la règle ne peut être exécutée sur les données. Dans ce scénario, la valeur price ne peut être validée, car la règle est configurée pour valider des nombres.

Les autres données invalides signifient que le rabais appliqué à price1 et/ou price2 est incorrect.

Par exemple, la ligne #2 : Le rabais 0.05 est incorrect pour le prix 1000, mais le rabais 0.2 est correct pour le prix 4000.

Lorsque vous sauvegardez le Job, un fichier JAR contenant la définition de règle est créé dans :
studio-path\configuration\.m2\repository\org\talend\libraries\rules-number

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.