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

Famille du composant

Databases/MySQL

 

Fonction

Le composant tMysqlCDC extrait les données modifiées d'une table source à partir de la dernière extraction et transfère ces données vers un ou plusieurs autre(s) système(s).

Objectif

Le tMysqlCDC permet l'extraction et la migration de données. Le tMysqlCDC extrait uniquement les changements apportés aux données source et les met à disposition de(s) système(s) cible(s) utilisant l'aperçu de base de données CDC.

Basic settings

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 dans le Repository. Les champs suivants sont alors pré-remplis à l'aide des données collectées.

Avertissement

Réinitialisez le type de base de données en cliquant sur le bouton adéquat afin de sélectionner la connexion CDC.

 

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'authentification sur l'utilisateur de 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 using CDC 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 sera créé et conservé pour ce composant uniquement. 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éutilisé dans divers projets et Jobs. Voir également le Guide utilisateur du Studio Talend.

Avertissement

Réinitialisez le type de base de données en cliquant sur le bouton adéquat afin de sélectionner la connexion CDC.

  

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

Table Using CDC

Nom de la table source dans laquelle capturer les changements apportés aux données.

 

Subscriber

Saisissez le nom du souscripteur ayant accès à la table de modifications.

 

Events to catch

Insert : Cochez cette case pour capturer les données insérées dans la table de modifications depuis la dernière extraction.

Update : Cochez cette case pour capturer les données mises à jour dans la table de modifications depuis la dernière extraction.

Delete : Cochez cette case pour capturer les données supprimées dans la table de modifications depuis la dernière extraction.

 

Limit

Nombre maximum de lignes pouvant être consommées par un souscripteur dans la table de modifications.

Advanced settings

Additional JDBC parameters

Spécifiez des propriétés de connexion supplémentaires pour la connexion à la base de données que vous créez.

Cette option est indisponible lorsque la case Use an existing connection est cochée.

Keep data in CDC Table

Cochez cette case pour garder les changements à disposition d'un ou plusieurs système(s) cible même après qu'ils aient été consultés.

 

Enable Streaming Result

Cochez cette case pour activer le mode flux. Cette option optimisera 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

Supprimez les espaces en début et en fin de champ dans les colonnes sélectionnées.

Note

Décochez Trim all the String/Char columns pour activer le tableau Trim column.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

 Enable parallel execution

Cocher cette case permet de traiter plusieurs flux de données simultanément. Cela permet de traiter les données plus rapidement. Notez que cette fonctionnalité dépend de la capacité de la base de données ou de l'application à gérer plusieurs insertions en parallèle ainsi que le nombre de processeurs utilisés. Dans le champ Number of parallel executions, vous pouvez :

  • Saisir le nombre d'exécutions parallèles désiré.

  • Appuyer sur Ctrl+Espace et sélectionner la variable de contexte dans la liste. Pour plus d'informations, consultez le Guide utilisateur du Studio Talend.

Notez que, lorsque l'exécution parallèle est activée, il n'est pas possible d'utiliser les variables globales pour récupérer les valeurs de retour dans un sous-job.

Avertissement

  • Le champ Action on table n'est pas disponible avec la fonction de parallélisation. Ainsi, pour créer une table, vous devez utiliser un composant tCreateTable.

  • Lorsque l'exécution parallèle est activée, il n'est pas possible d'utiliser les variables globales pour retrouver les valeurs de retour dans un sous-job.

Global Variables 

NB_LINE : nombre de lignes traitées. Cette variable est une variable After et retourne un entier.

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 est généralement utilisé comme composant de début. Il nécessite un composant de sortie et une connexion de type Row Main.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Scénario 1 : Alimenter un entrepôt de données

Ce scénario permet d'alimenter un entrepôt de données. Il est constitué de trois composants : le composant tMysqlInput correspond aux données de vos clients contenues dans la base Customers. Ces données sont modifiées à l'aide d'un composant tMap et les modifications sont transmises à la table Leadfact de votre entrepôt de données CRM à l'aide du composant de sortie tMysqlOutput.

Relier les composants

  1. Cliquez et déposez ces trois composants dans l'espace de modélisation : un tMysqlInput, un tMap et un tMysqlOutput.

  2. Connectez-les à l'aide de liens de type Row Main.

Configurer les composants

  1. Dans l'espace de modélisation graphique, sélectionnez le tMysqlInput et cliquez sur l'onglet Component pour configurer ses propriétés.

  2. Dans le champ Property Type, sélectionnez l'option Repository puis la connexion à la base de données Customers contenant les informations sur vos clients. Les informations de connexion seront renseignées automatiquement.

    Note

    Si vous n'avez pas créé de connexion à votre base de données dans les métadonnées, sélectionnez Built-in dans le champ Property Type et renseignez les champs manuellement.

  3. Dans le champ Schema, sélectionnez l'option Repository puis le schéma de la base Customers stocké dans les métadonnées.

    Voir également le Guide utilisateur du Studio Talend.

  4. Dans le champ Table name, renseignez le nom de la table contenant les informations à modifier, par exemple customers.

  5. Cliquez sur le bouton Guess Query pour récupérer toutes les données de votre table.

  6. Double-cliquez sur le composant tMap pour accéder au Map Editor. La zone input est déjà renseignée avec le schéma du composant d'entrée.

  7. Sélectionnez les champs de la zone d'entrée et glissez-les jusqu'à la table Leadfact de la zone de sortie. Pour plus d'informations concernant le mapping de données, consultez le Guide utilisateur du Studio Talend.

  8. Cliquez sur OK pour valider l'opération.

  9. Dans l'espace de modélisation graphique, double-cliquez sur le composant tMysqlOutput pour paramétrer ses propriétés.

  10. Dans le champ Property Type, sélectionnez l'option Repository puis la connexion à votre entrepôt de données CRM. Les informations de connexion seront renseignées automatiquement.

    Note

    Si vous n'avez pas créé de connexion à votre entrepôt dans les métadonnées, sélectionnez Built-in et renseignez les champs manuellement.

    Voir également le Guide utilisateur du Studio Talend.

  11. Dans le champ Table name, renseignez le nom de la table à alimenter, ici Leadfact.

  12. Appuyez sur F6 pour créer et alimenter la table Leadfact de l'entrepôt de données CRM.

Exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur F6 afin de créer et d'alimenter la table Leadfact dans l'entrepôt de données du CRM.

Scénario 2 : Extraire les modifications à l'aide du CDC

Ce scénario est basé sur le scénario précédent. Il alimente et modifie, au fil de l'eau, les données stockées dans l'entrepôt CRM et récupère et enregistre, toutes les nuits, ces modifications à l'aide de la fonction CDC dans une table dédiée. Et ces modifications sont ensuite extraites par les différents services intéressés : le service Marketing, le service Ventes et le service Finance.

Etape 1 : Configurer le CDC

Avant d'extraire les modifications apportées à votre entrepôt de données CRM, vous devez :

  1. configurer la connexion à la base de données dédiée au CDC,

  2. configurer la connexion à la base de données source et identifier la table à surveiller,

  3. configurer la connexion entre le CDC et les données.

Créer des connexions et des souscripteurs

  1. Dans le Repository, sous le nœud Metadata, créez une connexion à votre base de données dédiée au CDC, ici CDC_connection.

    Note

    Vérifiez que la connexion au CDC est sur le même serveur que la source de données pour laquelle les changements seront capturés.

  2. Dans le Repository, sous le nœud Metadata, créez une connexion à votre entrepôt de données dont vous souhaitez extraire les changements, ici CRM_connection.

  3. Cliquez-droit sur la connexion à votre CRM et sélectionnez l'option Retrieve schema pour récupérer le schéma de la table à surveiller.

  4. Cliquez-droit sur le sous-dossier CDC Foundation de votre CRM et sélectionnez l'option Create CDC dans le menu contextuel.

    La boîte de dialogue [Create change data capture] apparaît.

  5. Dans le champ Set link Connection, sélectionnez la connexion CDC_connection.

  6. Cliquez sur le bouton Create Subscriber. La boîte de dialogue [Create subscriber and Execute SQL Script] apparaît.

  7. Cliquez sur Execute, puis sur Close.

  8. Cliquez sur Finish pour valider la création de la table des souscripteurs.

    Dans le dossier CDC Foundation, la table des souscripteurs apparaît.

Spécifier la table à laquelle le souscripteur veut souscrire et activer la souscription

  1. Cliquez-droit sur le schéma de la table Leadfact à surveiller dans votre entrepôt de données CRM et sélectionnez l'option add CDC dans le menu contextuel. La boîte de dialogue [Create Subscriber and Execute SQL Script] apparaît.

  2. Dans les champs Events to catch, cochez les cases Insert, Update et Delete pour surveiller les insertions, mises à jours et suppression.

  3. Dans le champ Subscriber Name, saisissez le nom du souscripteur ayant accès à ces modifications, ici Sub_Mktg pour le service Marketing.

  4. Cliquez sur Execute, puis sur Close pour valider la souscription.

    Dans le sous-dossier CDC Foundation, deux nouvelles tables apparaissent et le schéma de la table surveillée est marqué d'un symbole CDC vert.

Créer de nouveaux souscripteurs Sub_Sales et Sub_Finance pour le service commercial et la finance respectivement

Créez de nouveaux souscripteurs pour les services Finance et Ventes, respectivement Sub_Finance et Sub_Sales :

  1. Cliquez-droit sur la table Leadfact par le CDC et sélectionnez l'option Edit CDC Subscribers. La boîte de dialogue [Edit CDC] apparaît.

  2. Cliquez sur le bouton Add. La boîte de dialogue [Input subscriber name] apparaît.

  3. Saisissez le nom du souscripteur, ici Sub_Finance et Sub_Sales.

  4. Cliquez sur Execute puis Close pour valider la création.

Etape 2 : Modifier les données de votre CRM

Modifiez les données de vos clients dans votre CRM, par exemple, mettre tous les noms de vos clients en majuscule dans un soucis d'harmonisation.

  1. Double-cliquez sur le composant tMap et saisissez row1.CustomerName.toUpperCase()devant la colonne CustomerName pour mettre tous les noms de vos clients en majuscules.

  2. Cliquez sur OK.

  3. Double-cliquez sur le composant tMysqlOutput.

  4. Dans le champ Action on table, sélectionnez None.

  5. Dans le champ Action on data, sélectionnez Insert or update pour insérer ou mettre à jour les données de la table.

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

Pour visualiser toutes les modifications apportées, cliquez-droit sur la table Leadfact et sélectionnez l'option View All Changes afin d'ouvrir la boîte de dialogue correspondant.

Etape 3 : Extraire les modifications apportées aux données

Après avoir mis en place l'environnement CDC, vous pouvez créer un Job utilisant le composant MySQL CDC pour extraire les modifications apportées aux données de la table Leadfact.

  1. De la Palette, déposez les composants tMysqlCDC et tLogRow dans l'espace de modélisation graphique.

  2. Reliez ces deux composants à l'aide d'une connexion de type Row Main.

  3. Double-cliquez sur le composant tMysqlCDC pour paramétrer ses propriétés.

  4. Dans le champ Property Type, sélectionnez l'option Repository puis la connexion CDC_connection à la base de données CDC. Les informations de connexion seront renseignées automatiquement.

    Note

    Si vous n'avez pas créé de connexion à votre base de données de modifications dans les métadonnées, sélectionnez Built-in dans le champ Property Type et renseignez les champs manuellement.

  5. Dans le champ Schema using CDC, sélectionnez l'option Repository puis le schéma de votre table Leadfact stockée dans les métadonnées.

  6. Dans le champ Table using CDC, renseignez le nom de la table surveillée par le CDC.

  7. Dans le champ Subscriber, renseignez le nom du souscripteur qui va extraire les modifications : Sub_Mktg pour le service Marketing, Sub_Sales pour le service Ventes ou Sub_Finance pour le service Finance.

  8. Dans le champ Events to catch, cochez les cases correspondant au type de modifications que le souscripteur va extraire, ici cochez les trois cases pour les trois souscripteurs.

  9. Double-cliquez sur le composant tLogRow pour paramétrer ses propriétés.

  10. Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.

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

Le nom des clients est donc mis en majuscule et le type de modification apparaît ici sous la forme d'un U pour Update.

Une fois, ces modifications extraites, elles ne sont plus disponibles dans la table des modifications. Pour vérifier leur extraction, cliquez-droit sur la table Leadfact surveillée par le CDC et sélectionnez l'option Views All Changes. Les modifications extraites n'y apparaissent plus.