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
Configurer le composant tFileInputDelimited
Procédure
Configurer le composant tDataQualityRules
Avant de commencer
- Vous avez créé au moins une règle de qualité de données dans Talend Cloud Data Stewardship.
- Vous avez un jeton d'accès personnel. Pour en générer un, consultez https://help.talend.com/r/fr-FR/Cloud/management-console-user-guide/cloud-access-token.Note InformationsConseil : Talend Cloud Data Stewardship est utilisé dans cet exemple. Vous pouvez également saisir l'URL de la version hybride de Talend Data Stewardship 8.0 R2022-07 ou une version supérieure et Talend Cloud Data Inventory.
Pourquoi et quand exécuter cette tâche
Procédure
Configurer les composants tLogRow
Procédure
Exécuter le Job
Procédure
Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.
Résultats
.--+------+-----------------.
| 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 |
'--+------+-----------------'
.--+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| 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