tMySQLInvalidRows - 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

Avertissement

Ce composant est disponible dans la Palette du Studio Talend si vous avez souscrit à l'un des produits Talend Platform.

Propriétés du tMySQLInvalidRows

Famille du composant

Data Quality

 

Fonction

Le tMySQLInvalidRows vérifie les lignes d'une base de données par rapport à des modèles de qualité de données (expression régulière) ou à des règles de qualité de données spécifiques (règle métier).

Objectif

Le tMySQLInvalidRows vous permet d'extraire des lignes d'une base de données qui ne correspondent pas à un modèle ou à une règle de qualité de données. Vous pouvez implémenter n'importe quelle correction nécessaire.

Basic settings

Validation type

Peut être Regex pattern validation ou DQ rule validation.

  

Regex pattern validation : Valide les données dans la base de donnée par rapport à des modèles de regex.

  

DQ rule validation : Valide les données dans la base de données par rapport à des règles de qualité de données.

 

Property type

Peut être Built-in ou Repository.

 

 

Built-in : Propriétés utilisées ponctuellement.

 

 

Repository : Sélectionnez le fichier de propriétés du composant. Les champs suivants sont alors pré-remplis à l'aide des données collectées.

 

Use an existing connection

Cochez cette case et sélectionnez le composant de connexion adéquat à partir de la liste Component List pour réutiliser les paramètres d'une connexion que vous avez déjà définie.

Note

Lorsqu'un Job contient un Job parent et un Job enfant, si vous souhaitez utiliser une connexion existant entre les deux niveaux, par exemple pour partager la connexion créée par le Job parent avec le Job enfant, vous devez :

  1. Au niveau parent, enregistrer la connexion à la base de données à partager, dans la vue Basic settings du composant de connexion créant cette connexion.

  2. Au niveau enfant, utiliser un composant dédié à la création de connexion, afin de lire la connexion enregistrée.

Pour plus d'informations concernant le partage d'une connexion à travers différents niveaux de Jobs, consultez le Guide utilisateur du Studio Talend.

 

Host

Adresse IP du serveur de base de données.

 

Port

Numéro du port d'écoute du serveur de base de données.

 

Database

Nom de la base de données.

 

Username et Password

Informations d'identification de l'utilisateur de la base de données.

Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis cliquez sur OK afin de sauvegarder les paramètres.

 

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant. Le schéma est soit local (built-in) soit distant dans le Repository.

 

 

Built-in : Le schéma est créé et conservé ponctuellement pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisable dans divers projets et Job designs. Voir également le Guide utilisateur du Studio Talend.

 

Table Name

Saisissez le nom de la table devant être lue.

 

Note

Disponible uniquement pour Regex pattern validation.

Analyzed column

Sélectionnez la colonne à analyser dans la liste des colonnes du schéma.

 

Note

Disponible uniquement pour Regex pattern validation.

Custom pattern

Cochez cette case afin de définir manuellement l'expression régulière personnalisée par rapport à laquelle vous voulez vérifier les lignes de la base de données.

 

Note

Disponible uniquement pour Regex pattern validation.

Patterns list

Sélectionnez le modèle dans la liste par rapport auquel vous souhaitez vérifier les lignes de la base de données.

Note

Disponible uniquement pour DQ Rule validation.

DQ rule list

Sélectionnez dans la liste la règle par rapport à laquelle vous souhaitez vérifier les lignes de la base de données.

Note

Disponible uniquement pour DQ Rule validation.

Query type

Peut être Built-In ou Repository.

  

Built-In : Saisissez manuellement l'instruction de la requête ou construisez-la graphiquement à l'aide du SQL Builder.

  

Repository : Sélectionnez la requête correspondante stockée dans le Repository. Le champ Query est renseigné automatiquement.

 

Guess Query

Cliquez sur le bouton Guess Query afin de générer la requête correspondant au schéma de la table dans le champ Query.

 

Guess schema

Cliquez sur le bouton Guess schema afin de récupérer le schéma de la table.

 

Query

Saisissez votre requête de base de données en faisant attention à ce que l'ordre des champs corresponde à celui défini dans le schéma.

Advanced settings Additional JDBC Parameters

Ajoutez des informations de connexion supplémentaires nécessaires à la connexion à la base de données. Cette option n'est pas disponible lorsque vous cochez la case Use an existing connection dans la vue Basic settings.

Note

Vous pouvez appuyer sur les touches Ctrl+Espace pour accéder à la liste des variables globales prédéfinies.

  Enable stream

Cochez cette case pour activer le mode flux sur la mise en mémoire. Cela vous permet de lire des tables volumineuses sans consommer beaucoup de mémoire, afin d'optimiser les performances.

  Trim all the String/Char columns

Cochez cette case pour supprimer les espaces en début et en fin de champ dans toutes les colonnes contenant des chaînes de caractères.

  Trim column

Cochez cette case pour supprimer les espaces en début et en fin de champ dans les colonnes sélectionnées.

Cette case n'est pas disponible lorsque la case Trim all the String/Char columns est cochée. Décochez la case Trim all the String/Char columns pour activer l'option Trim column.

tStatCatcher Statistics

Cochez cette case pour collecter les métadonnées de process du Job, aussi bien au niveau du Job qu'au niveau de chaque composant.

Dynamic settings

Cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Code, saisissez une variable de contexte afin de sélectionner dynamiquement votre connexion à la base de données parmi celles prévues dans votre Job. Cette fonctionnalité est utile si vous devez accéder à plusieurs tables de bases de données ayant la même structure mais se trouvant dans différentes bases de données, en particulier lorsque vous travaillez dans un environnement dans lequel vous ne pouvez pas changer les paramètres de votre Job, par exemple lorsque votre Job doit être déployé et exécuté dans un Studio Talend indépendant.

La table Dynamic settings n'est disponible que si la case Use an existing connection est cochée dans la vue Basic settings. Lorsqu'un paramètre dynamique est configuré, la liste Component List devient inaccessible dans la vue Basic settings.

Pour des exemples sur l'usage des paramètres dynamiques, consultez Scénario 3 : Lire des données dans des bases de données MySQL à l'aide de connexions dynamiques basées sur les variables de contexte et Scénario : Lire des données à partir de différentes bases de données MySQL à l'aide de paramètres de connexion chargés dynamiquement. Pour plus d'informations concernant les Dynamic settings et les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Global Variables

NB_LINE : nombre de lignes lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

QUERY : requête SQL traitée. Cette variable est une variable Flow et retourne une chaîne de caractères.

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant peut être utilisé comme composant de début ou intermédiaire. Il requiert un flux de sortie.

Scénario : Lire des adresses e-mail d'une table d'une base de données et récupérer des données spécifiques, notamment des lignes invalides

Ce scénario est un Job à deux composants créé dans le Studio Talend. Dans ce Job, le tMySQLInvalidRows lit des adresses e-mail des gens d'un pays spécifique, d'une table d'une base de données MySQL, filtre les données à l'aide d'une clause WHERE afin de réduire le processus de validation, vérifie la valeur des adresses e-mails, par rapport aux modèles de Studio Talend donnés, et extrait les données, notamment les lignes invalides, puis les affiche dans la console.

Ci-dessous est la table de la base de données que vous utilisez dans l'exemple. Certains clients habitent aux Etats-Unis et d'autres au Canada. La colonne Email contient des données invalides. Le composant tMySQLInvalidRows filtre les données dans la colonne Email afin de lire uniquement les adresses e-mails des clients des Etats-Unis, puis valide ces adresses par rapport au modèle EmailAddress.

Dans ce scénario, vous avez déjà stocké les schémas de la table d'entrée dans le Repository. Pour plus d'informations sur le stockage des schémas de métadonnées dans l'arborescence du Repository, consultez le Guide utilisateur du Studio Talend.

Construire le Job

  1. Dans l'arborescence du Repository, développez les nœuds Metadata et Db Connections où vous avez stocké les schémas d'entrée, puis glissez la métadonnée de connexion correspondant dans l'espace de modélisation graphique.

    La boîte de dialogue [Components] s'ouvre.

  2. Sélectionnez tMySQLInvalidRows dans la liste, et cliquez sur OK pour fermer la boîte de dialogue.

    Le composant tMySQLInvalidRows apparaît dans l'espace de modélisation graphique. La table MySQL utilisée dans ce scénario est appelée customers. Elle contient les colonnes customer_id, account_num, Iname, fname, country et Email concernant les clients.

  3. Glissez le tLogRow de la Palette dans l'espace de modélisation graphique.

  4. Connectez les deux composants à l'aide d'un lien Main Row.

Configurer le schéma

  1. Double-cliquez sur le tMySQLInvalid Rows afin d'afficher sa vue Basic settings et définir ses propriétés.

    Tous les champs relatifs à la connexion sont automatiquement renseignés. Si vous ne définissez pas vos fichiers d'entrée dans le Repository, remplissez les champs manuellement, après avoir sélectionné Built-in dans le champ Property Type.

  2. Dans la liste Validation type, sélectionnez Regex pattern validation.

    Cela valide les données dans les lignes sélectionnées par rapport à un modèle de regex. Pour un exemple de scénario concernant la validation de données par rapport à des règles de qualité de données, consultez Scénario 2 : Vérifier une table client par rapport une règle de qualité de données pour sélectionner les enregistrements clients.

  3. Dans le champ Table Name, saisissez le nom de la table de la base de données sur laquelle vous souhaitez exécuter le Job, customer1 dans cet exemple.

  4. Dans le champ Where clause, saisissez la clause WHERE qui restreint le nombre de lignes analysées.

    Dans ce scénario, analysez uniquement les adresses e-mail des clients habitant aux Etats-Unis.

  5. Dans la liste Analyzed column, sélectionnez la colonne que vous souhaitez analyser, Email dans cet exemple.

  6. Dans la liste Patterns list, sélectionnez le modèle de base de données de Studio Talend par rapport auquel vous voulez vérifier la colonne Email, Email Address dans cet exemple.

    Si vous cochez la case Custom pattern, vous pouvez personnaliser l'expression régulière par rapport à laquelle vos données seront vérifiées.

  7. Double-cliquez sur le tLogRow afin d'ouvrir sa vue Basic settings et définir ses propriétés comme nécessaire.

Exécuter le Job

  1. Sauvegardez votre Job en appuyant sur les touches Ctrl+S.

  2. Appuyez sur F6 pour l'exécuter.

Le composant tMySQLInvalidRows a analysé les adresses e-mail uniquement pour les clients des Etats-Unis, dans la table de la base de données MySQL en la comparant avec le modèle SQL sélectionné (Email Address), puis a extrait toutes les données filtrées, notamment les adresses e-mail invalides devant être corrigées.

Scénario 2 : Vérifier une table client par rapport une règle de qualité de données pour sélectionner les enregistrements clients

Ce scénario présente un Job à trois composants permettant de vérifier une table client MySQL par rapport à une règle de qualité de données, afin d'effectuer une requête sur des enregistrements clients spécifiques.

Les composants sont les suivants :

  • un tMysqlConnection : ce composant crée la connexion à la base de données MySQL afin que les autres composants puissent la réutiliser.

  • un tMySQLInvalidRows : ce composant réutilise la connexion créée par le tMysqlConnection et interroge les enregistrements clients qui vous intéressent, par rapport à la règle de qualité de données.

  • un tLogRow : ce composant présente les résultats de l'exécution du Job.

Pour reproduire ce scénario, suivez les étapes des sections suivantes.

Déposer et relier les composants

Procédez comme suit :

  1. De la Palette, déposez un tMysqlConnection, un tMySQLInvalidRows et un tLogRow dans l'espace de modélisation graphique.

    Un composant dans l'espace de modélisation graphique peut être nommé comme vous le souhaitez. Pour plus d'informations concernant le nommage des composants, consultez le Guide utilisateur du Studio Talend

  2. Cliquez-droit sur le tMysqlConnection et sélectionnez Trigger > OnSubjobOk afin de relier ce composant au tMySQLInvalidRows.

  3. Répétez l'opération mais sélectionnez Row > Main pour connecter le composant tMySQLInvalidRows au tLogRow.

Configurer la connexion à la base de données

Pour configurer la connexion à la base de données MySQL, procédez comme suit :

  1. Double-cliquez sur le tMysqlConnection afin d'ouvrir sa vue Component.

  2. Dans le champ DB version, sélectionnez la version de votre base de données MySQL. Sélectionnez Mysql 5 dans cet exemple.

  3. Dans le champ Host, saisissez l'adresse IP du serveur de la base de données à laquelle se connecter. Dans ce scénario, saisissez localhost.

  4. Dans le champ Port, saisissez le numéro du port de la base de données à laquelle se connecter. Saisissez 3306 dans cet exemple.

  5. Dans le champ Database, saisissez le nom de la base de données dans laquelle vous souhaitez vérifier la table client. Dans ce scénario, saisissez crm.

  6. Dans les champs Username et Password, saisissez les informations d'authentification à la base de données. Dans cet exemple, saisissez root dans les deux champs.

Configurer la requête sur les enregistrements clients

Pour ce faire, procédez comme suit :

  1. Double-cliquez sur le tMySQLInvalidRows pour ouvrir sa vue Component.

  2. Dans le champ Validation type, sélectionnez DQ rule validation afin d'utiliser la règle de qualité de données.

  3. Cochez la case Use an existing connection afin de réutiliser la connexion créée par le tMysqlConnection.

  4. Cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir l'éditeur de schéma.

  5. Cliquez trois fois sur le bouton [+] pour ajouter trois lignes et renommez-les respectivement Name, DOB et Email,.

  6. Dans la ligne DOB, sélectionnez VARCHAR dans la colonne DB type. Saisissez 19 dans la colonne Length et 0 dans la colonne Precision.

  7. Cliquez sur OK pour valider ces modifications et accepter la propagation proposée par la fenêtre pop-up.

  8. Dans le champ Table name, saisissez le chemin d'accès à la table de la base de données à vérifier. Saisissez cust dans cet exemple.

  9. Dans le champ Where clause, saisissez la clause WHERE à utiliser, en plus de la règle de qualité de données, afin d'interroger les données clients qui vous intéressent. Dans ce scénario, saisissez entre guillemets `cust`.`Email` like 's%' afin de récupérer les enregistrements d'e-mail commençant par la lettre s ou S.

  10. Dans le champ DQ rule list, sélectionnez la règle de qualité de données à utiliser. Dans ce scénario, sélectionnez cust_age. Cette règle est une règle de démo qui se présente comme suit :

    18<=((TO_DAYS(NOW())-TO_DAYS(DOB))/365)

    Vous pouvez regarder quelles sont les règles de qualité de données disponibles dans Libraries > Rules > SQL de la vue DQ Repository. La règle cust_age peut être importée du projet TDQEEDEMOJAVA.

    Pour plus d'informations concernant la vue DQ Repository et ses éléments, ainsi que comment importer le projet démo de qualité de données, consultez le Guide utilisateur du Studio Talend.

  11. Cliquez sur le bouton Guess Query pour générer la requête correspondante utilisant la clause NOT.

  12. Dans le champ Query, changez 18 en 20 afin que la clause soit la suivante :

    "SELECT `Name`, `DOB`, `Email` FROM `crm`.`cust` 
      WHERE (NOT ( 20>((TO_DAYS(NOW())-TO_DAYS(DOB))/365) )
      AND `cust`.`Email` like 's%')"

    Cette clause vous permet de sélectionner les clients dont l'âge est supérieur à 20.

Exécuter le Job

Le tLogRow est utilisé pour présenter les résultats d'exécution du Job. Vous pouvez configurer le mode de présentation dans sa vue Component.

Pour ce faire, double-cliquez sur le tLogRow afin d'ouvrir sa vue Component. Dans la zone Mode, sélectionnez l'option Table (print values in cells of a table).

  • Pour exécuter le Job, appuyez sur F6.

La vue Run s'ouvre automatiquement et vous pouvez vérifier les résultats d'exécution.

Vous pouvez remarquer que les enregistrements clients commençant par la lettre S sont récupérés et que l'âge de ces personnes est supérieur à 20.