Retour

Change Data Capture (CDC)

Temps de lecture : 5 minutes

Principe :

L’alimentation d’entrepôts de données implique l’extraction et la migration de données d’une ou plusieurs bases de données vers un ou plusieurs systèmes afin d’être analysées. Mais ces processus d’extraction et de migration de gros volumes de données sont très coûteux en ressources et en temps.

Ainsi le Change Data Capture (CDC) permet de ne capturer que les changements effectués aux données source et de les envoyer en temps réel vers un ou plusieurs systèmes cible. Cette fonction de capture de données réduit le trafic de données sur le réseau et, ainsi, réduit le temps de traitement ETL.

Dans ce tutoriel, vous allez apprendre comment configurer une base de données CDC et comment charger les données de changement.

Compatibilité du CDC :

Pour le moment, le CDC est uniquement disponible en Java et pour les bases de données Oracle, MySQL, DB2, PostgreSQL, Sybase, MS SQL Server, Informix, Ingres et Teradata en mode Trigger. Pour Oracle et AS/400, il est disponible en mode Redo/Archive log et en mode XStream pour Oracle.

Les Modes du CDC :

  • Mode Trigger : Ce mode place un trigger (ou déclencheur) déclenchant la capture des deltas sur chaque table source monitorée. La mise en place de ces triggers nécessite de légères modifications dans la structure de la base de données.
  • Mode CDC Redo log : Le mode Redo/Archive log est uniquement disponible pour les bases de données AS/400 et Oracle Enterprise 11 ou précédent, respectivement. C’est l’équivalent du mode archive log d’Oracle et du mode journal d’AS/400.
  • Mode XStream : XStream fournit un framework de partage de modifications de données en temps réel, avec des performances et une utilisabilité exceptionnelles, entre des bases de données Oracle et d’autres systèmes tels que des bases de données non-Oracle et des applications tierces.

Exemple de configuration du CDC en mode Trigger :

Étape 1 : Définir l’éditeur

  • Dans le noeud Metadata du Repository configurer une connexion à la base de données dédiée au CDC.
  • Dans le noeud Metadata du Repository configurer une connexion à la base de données dans laquelle sont situées les données.

Étape 2 : Identifier la table source

Pour identifier la table de laquelle capturer les modifications de données, cliquez-droit sur la connexion de la base de données à monitorer pour récupérer le schéma de la table source et charger ce dernier dans le Repository. Dans cet exemple, la table Dim_Worker.

Étape 3 : Créer une table souscripteur

  • Cliquez-droit sur le dossier CDC Foundation de la connexion de la base de données et sélectionnez Create CDC dans le menu contextuel. La fenêtre Create Change Data Capture s’ouvre.
  • Dans la boîte de dialogue Create Change Data Capture, cliquez sur le bouton […] du champ Set link Connection pour sélectionner la connexion à la base de données dédiée au CDC.
  • Cliquez sur Create Subscriber. La boîte de dialogue Create Subscriber and Execute SQL Script s’ouvre.
  • Cliquez sur Execute pour exécuter le script affiché puis sur Close pour fermer la boîte de dialogue.
  • Cliquez sur Finish dans la boîte de dialogue Create Change Data Capture.

Dans le dossier CDC Foundation, la connexion à la base de données CDC et le schéma de la table des souscripteurs s’affichent.

Étape 4 : Souscrire à la table source et activer la souscription

Vous devez préciser à quelle table le souscripteur veut souscrire, puis activer son inscription.

  • Cliquez-droit sur le schéma correspondant à la table source et sélectionnez add CDC. La boîte de dialogue Create Subscriber and Execute SQL Script apparaît.
  • Dans la boîte de dialogue [Create Subscriber and Execute SQL Script], cochez les événemens à surveiller : InsertUpdate ou Delete

Pour voir les changements de données apportés à la table source, cliquez-droit sur la table correspondante dans le dossier Table schemas et sélectionnez View All Changes pour ouvrir la boîte de dialogue View All Changes.

Étape 5 : extraire des données de changement

Après avoir défini l’environnement CDC, vous pouvez créer un Job dans le Studio Talend utilisant un composant CDC correspondant au type de base de données que vous utilisez, afin d’extraire les changements apportés aux données du système source.

Procédure :

  • Créez un nouveau Job dans le Studio Talend, ajoutez un composant tDBCDC et un composant tLogRow, puis reliez le tDBCDC au tLogRow à l’aide d’un lien Row > Main.
  • Double-cliquez sur le composant tDBCDC et paramétrez ses propriétés (Basic settings).
  • Sélectionnez Repository dans la liste déroulante Property of the CDC Connection et cliquez sur le bouton […] pour récupérer le schéma correspondant à votre connexion à la base de données CDC.
  • Sélectionnez Repository dans la liste déroulante Schema using CDC et cliquez sur le bouton […] pour récupérer le schéma correspondant à votre table de laquelle capturer les modifications.
  • Cochez la case correspondant à l’événement ou aux événements à surveiller.
  • Double-cliquez sur le tLogRow et, dans la zone Mode, sélectionnez Basic settings, sélectionnez Table (print values in cells of a table) pour un affichage optimal des résultats.
  • Exécuter votre Job.

Résultat :

Maintenant votre CDC est configurer et vous pouvez désormais récupérer les modifications sur votre source de données.

Laisser un commentaire

Il n'y a pas de commentaires pour le moment. Soyez le premier à participer !