tELTMysqlMap

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

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.

Fonction

Le tELTMysqlMap permet de construire votre commande SQL graphiquement en utilisant la table fournie en entrée.

Objectif

Ce composant 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.

Propriétés du tELTMysqlMap

Famille du composant

ELT/Map/Mysql

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 et 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 gèrent pas de données mais des informations relatives à des schémas de tables qui seront utilisées pour construire la requête SQL à exécuter. La seule connexion requise pour connecter ces composants est un lien simple.

Notez que le nom de sortie que vous donnez au lien lors de sa création doit toujours être le nom exact de la table à laquelle accéder, car ce paramètre sera utilisé dans l'instruction SQL générée.

Pour plus d'informations concernant ce sujet, consultez le Guide utilisateur du Studio Talend.

Mapper et effectuer une jointure sur les tables

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

  • Comme dans un éditeur de mapping normal, glissez-déposez simplement les colonnes du schéma d'entrée vers la table de sortie définie.

  • Utilisez les touches Ctrl ou Majuscule pour une sélection multiple de colonnes contiguës ou non.

Vous pouvez implémenter des jointures explicites pour récupérer des données de différentes tables.

  • Cochez la case Explicit join de la colonne sur laquelle faire une jointure dans le schéma d'entrée et sélectionnez le type de jointure dans la liste, dans le coin supérieur droit du schéma d'entrée.

  • Les types possibles de jointures comprennent : INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN et CROSS JOIN. Par défaut, le type INNER JOIN est sélectionné.

Vous pouvez également créer des tables d'alias afin de récupérer des données diverses de la même table.

  • Dans la zone d'entrée, cliquez sur le bouton [+] dans le coin supérieur gauche de l'éditeur de mapping afin de créer un nouvel alias.

  • Sélectionnez la table sur laquelle se base l'alias.

  • Saisissez un nouveau nom pour la table d'alias. Il n'est pas recommandé de ne pas saisir le même nom que celui de la table principale.

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 une instruction SQL

Le mapping d'éléments des schémas d'entrée vers les schémas de sortie crée instantanément l'instruction SELECT correspondante. Les clauses sont automatiquement incluses.

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.