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

Propriétés du tELTMysqlMap

Les composants tELTMysqlInput, tELTMysqlOutput, et tELTMysqlMap sont très proches dans leurs conditions de fonctionnement. En effet, ces trois composants sont conçus pour manipuler des schémas de données d'une base MySQL afin de générer des commandes Insert, y compris des clauses, qui devront être exécutées dans la table de sortie définie.

Famille du composant

ELT/Map/Mysql

Fonction

Permet de construire votre commande SQL graphiquement en utilisant la table fournie en entrée.

Objectif

Utilise les tables fournies en entrée pour alimenter les paramètres nécessaires à l'exécution de la commande SQL souhaitée. La commande peut contenir des jointures internes comme externes entre différentes tables ou entre une table et ses alias.

Basic settings

DB Version

Sélectionnez la version de MySQL que vous utilisez.

 

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.

 

ELT Mysql Map editor

L'éditeur ELT du Mapper vous permet de définir le schéma de sortie ainsi que de construire graphiquement la commande SQL à exécuter. Le nom des colonnes du schéma peut être différent du nom des colonnes dans la base de données.

 

Style link

Sélectionnez le type d'affichage des liens.

Auto : par défaut, les liens entre les schémas d'entrée et de sortie et les paramètres du service Web sont en forme de courbe.

Bezier curve : les liens entre les schémas et les paramètres du service Web sont en forme de ligne.

Line : les liens entre les schémas et les paramètres du service Web sont en forme de lignes droites. Cette option vous permettra d'optimiser les performances.

 

Property type

Peut être Built-in ou Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

 

 

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.

 

Host

Adresse IP du serveur de base de données.

 

Port

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

 

Database

Nom de la base de données.

 

Username et Password

Données d'authentification 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.

 

Preview

L'aperçu est un cliché des données traitées dans le Mapper. Il apparaît lorsque les propriétés du Mapper ont été complétées. La synchronisation de l'aperçu n'est disponible qu'après avoir enregistrer les modifications.

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

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

L'utilisation du composant tELTMysqlMap est étroitement liée à celle des composants tELTMysqlInput et tELTMysqlOutput. Notez que le lien de sortie (output) à utiliser avec ces deux composants doit respecter strictement la syntaxe du nom de la table.

Note

Les composants ELT ne traitent pas le flux de données lui-même mais uniquement les informations du schéma.

Connecter les composants ELT

Les composants ELT ne traitent pas les données en tant que telles mais les informations du schéma descriptif de la table qui seront utilisées pour alimenter les paramètres de la requête SQL à exécuter.

Par conséquent la connexion requise pour relier ces différents composants est simplement un lien qui porte le nom de la table.

Note

Le nom de la sortie que vous donnez à ce lien lors de sa création doit correspondre exactement au nom de la table car ce paramètre sera utilisé lors de la génération de la commande SQL.

Voir également le Guide utilisateur du Studio Talend.

Mapping et jointures sur les tables

Dans le Mapper ELT, vous pouvez sélectionner des colonnes spécifiques des schémas d'entrée et les ajouter dans le schéma de sortie.

  • De la même manière que dans l'éditeur du Mapper ETL, simplement glissez et déposez le contenu du schéma d'entrée vers le schéma de sortie.

  • Utilisez les touches Ctrl et Maj pour la sélection multiple des colonnes contiguës ou non.

Vous pouvez mettre en place des jointures explicites pour extraire des données variées de différentes tables.

  • Cliquez sur la liste déroulante Join et sélectionnez une jointure explicite.

  • Les jointures suivantes sont disponibles : Inner Join, Left Outer Join, Right Outer Join ou Full Outer Join et Cross Join.

  • Par défaut la jointure interne (Inner Join) est sélectionnée.

Vous pouvez également créer des tables Alias afin de sélectionner des données variées dans une même table.

  • Dans la zone Input, cliquez sur le bouton [+] pour créer un Alias.

  • Définissez la table sur laquelle l'alias est basé.

  • Saisissez un nom pour la table alias, de préférence veillez à ce qu'il soit différent de la table principale pour éviter les confusions.

Ajouter des clauses WHERE et d'autres clauses

Vous pouvez également restreindre une requête Select à l'aide d'une clause WHERE et/ou à l'aide d'autres clauses telles que GROUP BY, ORDER BY, etc., en cliquant sur le bouton Add filter row situé en haut de la table de sortie dans l'éditeur de map.

Pour ajouter une restriction à l'aide d'une clause WHERE, cliquez sur le bouton Add filter row et sélectionnez Add a WHERE clause dans le menu qui s'ouvre.

Pour ajouter une restriction à l'aide de GROUP BY, ORDER BY, etc., cliquez sur le bouton Add filter row et sélectionnez Add an other(GROUP...) clause dans le menu qui s'ouvre.

Veillez à ce que les composants d'entrée soient tous liés correctement au composant ELT Map pour garantir que les inclusions, jointures et clauses fonctionnent.

Générer la requête SQL

La mise en correspondance des éléments à partir des schémas d'entrée vers les schémas de sortie crée automatiquement la requête Select correspondante.

Les éventuelles clauses sont également prises en compte automatiquement.

Scénario 1 : Agréger les colonnes d'une table et appliquer un filtre

Le scénario suivant décrit un Job rassemblant plusieurs schémas d'une table de base de données en entrée puis utilise une clause dans la requête SQL afin de filtrer les données en sortie.

  • Cliquez et déposez les composants suivants de la Palette dans l'espace de modélisation graphique : trois tELTMysqlIntput, un tELTMysqlMap, et un tELTMysqlOutput.

  • Double-cliquez sur le premier tELTMysqlInput afin d'afficher sa vue Basic settings.

  • Dans la liste Schema, sélectionnez Repository, cliquez sur le bouton [...] à côté du champ Edit schema. Dans la boîte de dialogue [Repository Content], sélectionnez votre connexion à la base de données ainsi que le schéma souhaité.

    Le nom du schéma sélectionné apparaît automatiquement dans le champ Default Table Name.

    Dans ce scénario, la connexion à la base de données est Talend_MySQL et le schéma pour le premier composant d'entrée est owners.

  • Configurez les deuxième et troisième composants tELTMysqlInput de la même manière, mais sélectionnez cars et resellers respectivement comme nom de schéma.

Note

Dans ce scénario, tous les schémas d'entrée sont stockés dans la zone Metadata du Repository, afin que vous les retrouviez facilement. Pour plus d'informations concernant les métadonnées, consultez le Guide utilisateur du Studio Talend.

Vous pouvez également sélectionner les trois composants d'entrée en déposant les schémas correspondants de la zone Metadata dans l'espace de modélisation graphique et en double-cliquant sur le composant tELTMysqlInput dans la boîte de dialogue [Components]. Cela vous permet d'éviter les étapes de nommage des composants et de définition de leur schéma.

  • Reliez les trois composants tELTMysqlInput au composant tELTMysqlMap à l'aide de liens nommés strictement selon le nom des tables de la base de données : owners, cars et resellers.

  • Reliez ensuite le composant tELTMysqlMap au tELTMysqlOutput et nommez le lien agg_result, qui est le nom de la table de la base de données dans laquelle vous allez sauvegarder le résultat de l'agrégation.

  • Cliquez sur le composant tELTMysqlMap afin d'afficher sa vue Basic settings et configurer ses propriétés.

  • Sélectionnez Repository dans la liste Property Type et sélectionnez la connexion à la base de données utilisée pour les composants d'entrée.

    Toutes les informations de la base de données sont automatiquement récupérées.

  • Laissez les paramètres configurés par défaut

  • Double-cliquez sur le composant tELTMysqlMap afin d'ouvrir le Map Editor pour mettre en place les jointures entre les tables d'entrée (Input) et configurer le flux de sortie.

  • Ajoutez les tables d'entrée en cliquant sur le bouton [+] dans le coin supérieur gauche de l'éditeur et sélectionnez les noms des tables correspondants dans la boîte de dialogue [Add a new alias].

  • Glissez-déposez la colonne ID_Owner à partir de la table owners vers la colonne correspondante dans la table cars.

  • Dans la table cars, cochez la case Explicit Join en face de ID_Owners.

    Une jointure INNER JOIN, le type de jointure par défaut, s'affiche dans la liste des jointures.

  • Glissez la colonne ID_Resellers à partir de la table cars vers la colonne correspondante de la table Resellers pour mettre en place la seconde jointure. Définissez à nouveau une option de jointure INNER JOIN.

  • Puis sélectionnez les colonnes à agréger dans la table de sortie, agg_result.

  • Déposez les colonnes ID_Owners, Name et ID_Insurance de la table owners dans la table de sortie.

  • Déposez les colonnes Registration, Make et Color de la table cars dans la table de sortie.

  • Déposez les colonnes Name_Reseller et City de la table resellers dans la table de sortie.

  • Avec les colonnes correspondantes sélectionnées, la mise en correspondance apparaît en jaune et les jointures en violet.

  • Appliquez un filtre sur la table de sortie. Cliquez sur le bouton Add filter row en haut de la table de sortie afin d'afficher le champ textuel Additional clauses, déposez la colonne City de la table resellers dans le champ textuel puis définissez la clause WHERE : resellers.City ='Augusta'.

  • Cliquez sur l'onglet Generated SQL Select query afin d'afficher l'instruction SQL correspondante.

  • Cliquez OK pour sauvegarder le paramétrage de l'ELT Map.

  • Double-cliquez sur le composant tELTMysqlOutput afin d'afficher sa vue Basic settings.

  • Dans la liste Action on data sélectionnez l'action que vous souhaitez effectuer sur les données.

  • Sélectionnez Repository dans la liste Schema et définissez le schéma de sortie de la même manière que pour les schémas d'entrée. Notez que le schéma de sortie doit être nommé comme la table dans laquelle vous souhaitez sauvegarder vos résultats d'aggrégation, agg_result dans ce scénario.

Note

Vous pouvez également utiliser un schéma en mode Built-In et récupérer la structure du schéma du composant précédent. Cependant, vous devez être sûr d'avoir spécifié une table cible existant dans votre base de données, ayant la même structure de données.

  • Laissez les autres paramètres configurés par défaut.

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

    Toutes les données sélectionnées sont insérées dans la table agg_result comme spécifié dans l'instruction SQL.

Scénario 2 : ELT utilisant une table Alias

Le scénario suivant décrit un Job mappant des informations provenant des deux tables d'entrée et d'une table Alias servant de table d'entrée virtuelle, vers une table de sortie. La table employees contient l'ID des employés, le numéro de leur service, leur nom et l'ID de leur responsable. Ces responsables sont également considérés comme des employés et par conséquent inclus dans la table employees. La table dept contient les informations de service des employés. La table Alias récupère le nom des responsables de la table employees.

  • Glissez et déposez de la Palette dans l'espace de modélisation graphique deux composants tELTMysqlInput, un tELTMysqlMap et un tELTMysqlOutput.

    Nommez-les comme vous le souhaitez afin de décrire au mieux leur fonctionnalité.

  • Double-cliquez sur le premier composant tELTMysqlInput afin d'afficher sa vue Basic settings et configurer ses propriétés de base.

  • Sélectionnez Repository dans la liste Schema puis définissez la connexion à la base de données ainsi que le schéma, en cliquant sur le bouton [...] à côté du champ Edit Schema.

    La connexion à la base de données est Talend_MySQL et le schéma du premier composant d'entrée est employees.

Note

Dans ce scénario, les schémas d'entrée sont stockés dans le Repository, sous le nœud Metadata, afin que vous puissiez les récupérer plus facilement. Pour plus d'informations concernant les métadonnées, consultez le Guide utilisateur du Studio Talend.

  • Configurez le second composant tELTMysqlInput de la même manière, mais sélectionnez dept comme nom de schéma.

  • Double-cliquez sur le composant tELTMysqlOutput afin d'afficher sa vue Basic settings et définir ses propriétés.

  • Dans la liste Action on data, sélectionnez l'action que vous souhaitez effectuer, Insert dans ce scénario.

  • Dans la liste Schema, sélectionnez Repository et définissez le schéma de sortie de la même manière que pour les schémas d'entrée. Dans ce scénario, sélectionnez result comme schéma de sortie, qui est le nom de la table de la base de données utilisée pour stocker le résultat du mapping.

    Le schéma de sortie contient toutes les colonnes des schémas d'entrée ainsi qu'une colonne ManagerName.

  • Laissez les autres paramètres configurés par défaut.

  • Reliez les deux composants tELTMysqlInput au tELTMysqlMap à l'aide de liens Link nommés strictement selon le nom des tables d'entrée, employees et dept dans ce scénario.

  • Reliez le composant tELTMysqlMap au tELTMysqlOutput à l'aide d'un lien Link. Cliquez sur Yes (Oui) à l'ouverture de la boîte de dialogue pour permettre au Mapper ELT de récupérer la structure de la table de sortie à partir du schéma de sortie.

  • Cliquez sur le composant tELTMysqlMap afin d'afficher sa vue Basic settings et configurer ses propriétés de base.

  • Dans la liste Property Type, sélectionnez Repository puis sélectionnez la connexion à la base de données utilisée dans les composants d'entrée.

    Les informations de connexion à la base de données sont automatiquement récupérées.

  • Laissez les autres paramètres configurés par défaut.

  • Cliquez sur le bouton [...] à côté du champ ELT Mysql Map Editor ou double-cliquez sur le composant tELTMysqlMap dans l'espace de modélisation graphique afin d'ouvrir le ELT Map Editor.

    Le composant tELTMysqlMap est connecté au composant de sortie, la table de sortie est donc affichée dans la zone correspondante.

  • Ajoutez les tables d'entrée employees et dept dans la zone d'entrée, en cliquant sur le bouton [+] et en sélectionnant le nom des tables correspondant dans la boîte de dialogue [Add a new alias].

  • Lorsque vous créez une table Alias à partir de la table employees en sélectionnant employees dans la liste Select the table to use et en saisissant Managers dans le champ Type in a valid alias, dans la boîte de dialogue [Add a new alias].

  • Déposez la colonne DeptNo de la table employees dans la table dept.

  • Cochez la case Explicit join devant la colonne DeptNo de la table dept afin de configurer une jointure Inner Join.

  • Déposez la colonne ManagerId de la table employees dans la colonne ID de la table Managers.

  • Cochez la case Explicit join devant la colonne ID de la table Managers et sélectionnez LEFT OUTER JOIN dans la list Join, afin que les lignes de sortie puissent contenir des valeurs Null.

  • Déposez toutes les colonnes de la table employees dans les colonnes correspondantes de la table de sortie.

  • Déposez les colonnes DeptName et Location de la table dept dans les colonnes correspondantes de la table de sortie.

  • Déposez la colonne Name de la table Managers dans la colonne ManagerName de la table de sortie.

  • Cliquez sur l'onglet Generated SQL Select query pour afficher l'instruction SQL à exécuter.

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

    La table de sortie result de la base de données contient toutes les informations concernant les employés, y compris le nom de leurs responsables respectifs.

Scénario associé

Pour un scénario expliquant les sous-requêtes, consultez Scénario : Mapper des données à l'aide d'une sous-requête.