La capture des données modifiées (CDC, Change Data Capture) est un processus permettant de suivre et de capturer les modifications apportées aux données dans un système source, tel qu'une base de données transactionnelle, un entrepôt de données ou une application SaaS. En enregistrant les modifications en temps réel, la CDC vous permet de synchroniser les systèmes, d'alimenter les analyses, d'entraîner des modèles d'IA et de faciliter les migrations de données.
Il est essentiel de savoir quelles modifications sont apportées à une base de données pour maintenir l'intégrité des données, optimiser les workflows et obtenir des insights en temps réel. Un exemple typique est celui du commerce de détail : lorsqu'un client passe une commande, la CDC capture cette vente à partir de la base de données transactionnelle au moment où elle se produit. Un service de CDC comme Datastream de Google Cloud peut répliquer les modifications d'une base de données PostgreSQL sur site dans un entrepôt de données BigQuery, ce qui permet d'alimenter un tableau de bord d'analyse en temps quasi réel et d'éviter d'attendre l'exécution de jobs par lot lents et nocturnes.
La capture des données modifiées (CDC) est un processus permettant d'identifier et de capturer les modifications de données (insertions, mises à jour et suppressions, par exemple) à partir d'un système source, souvent en temps quasi réel. La CDC est réputée pour :
Le processus ETL (extraction, transformation et chargement) consiste à extraire les données brutes du système source, à les transformer dans la structure nécessaire, puis à les charger dans le système de destination, généralement un entrepôt de données. Il permet de s'assurer que les données sont organisées, nettoyées et prêtes à être utilisées en aval dans des analyses ou des applications.
Traditionnellement, le processus ETL s'exécute par lots volumineux et programmés, souvent pendant la nuit. Cela signifie que les données du système cible ne sont pas plus récentes que la dernière exécution par lot.
La principale différence réside dans la façon dont la CDC extrait les données. Au lieu d'extraire l'ensemble de données par lots, la CDC capture les modifications au fur et à mesure qu'elles se produisent. Il est ainsi possible d'interroger les données les plus récentes à tout moment, au lieu de s'appuyer sur un traitement par lot périodique. Vous pouvez ainsi réagir plus rapidement aux changements et obtenir des insights plus précis.
La capture des données modifiées est avant tout un processus axé sur l'extraction efficace de toutes les modifications incrémentielles d'une base de données source, souvent en temps quasi réel, afin de minimiser la charge sur le système source.
En revanche, les dimensions à évolution lente (SCD) sont une technique de modélisation des données appliquée dans l'entrepôt de données ou le système d'analyse cible. Elles se concentrent sur la façon de stocker et de gérer l'état historique des données de dimension (comme les fiches client ou les attributs de produit) dans le temps.
La CDC est l'outil qui permet de transférer efficacement les données modifiées. Ces modifications sont généralement appliquées à l'aide d'une stratégie SCD spécifique afin de conserver un historique complet et précis dans le système de destination.
La capture de données modifiées peut être un pont puissant pour connecter les différents systèmes qui composent une pile de données ou un cloud de données moderne. Les outils CDC ne sont pas limités à des bases de données spécifiques. Ils sont conçus pour fonctionner avec une grande variété de sources et de destinations.
Les bases de données transactionnelles sont les sources les plus courantes pour la CDC. Elles capturent chaque insertion, mise à jour et suppression à partir des systèmes qui exécutent les opérations commerciales quotidiennes.
Ces systèmes, qui constituent souvent la principale destination des données CDC, rassemblent les informations provenant de plusieurs sources pour l'informatique décisionnelle, l'analyse et l'IA.
La CDC vous permet d'extraire les données modifiées des plates-formes métier critiques (souvent via des API ou des webhooks) afin de synchroniser les données client, commerciales ou d'assistance dans toute l'organisation.
Les plates-formes de diffusion et de messagerie servent souvent de service de messagerie en temps réel. Elles reçoivent des événements de modification à partir d'une source et les distribuent simultanément à plusieurs consommateurs en aval.
Les journaux d'événements CDC bruts sont souvent stockés dans un espace de stockage d'objets, qui constitue une base évolutive et économique pour créer un lac de données.
La CDC peut débloquer un large éventail de cas d'utilisation critiques, allant de la continuité des données à l'analyse en temps réel et à l'IA.
En capturant et en propageant les modifications au fur et à mesure qu'elles sont apportées, la CDC garantit que plusieurs systèmes (comme une base de données principale et une sauvegarde, ou une base de données principale et une plate-forme d'analyse) sont toujours synchronisés. Cela élimine les écarts de données et préserve l'intégrité des données sur toutes les plates-formes.
La capture des données modifiées consiste à identifier, à suivre et à extraire les modifications apportées aux données d'une base de données source à l'aide de différentes approches, y compris les suivantes :
Les bases de données sont la source la plus courante et la plus fiable pour la capture des données modifiées, car elles partagent toutes un composant essentiel : le journal des transactions. Ce journal est un enregistrement immuable et ordonné de chaque modification, ce qui en fait la base idéale pour capturer les modifications apportées aux données de manière précise et efficace, sans impacter les performances des bases de données. Voici une présentation plus détaillée des concepts clés.
Avant que les données ne soient écrites dans des tables de base de données, la modification (insertion, mise à jour ou suppression) est d'abord enregistrée dans un journal des transactions. Les outils de CDC modernes exploitent ce journal pour capturer les modifications de manière non intrusive. Il s'agit d'un élément essentiel de la technologie de réplication de base de données. Si le concept est universel, le nom de ce journal varie selon les bases de données populaires. Voici quelques exemples notables :
Pour les grandes bases de données existantes, la lecture de l'intégralité de l'historique à partir du journal des transactions peut s'avérer peu pratique en raison des performances du réseau et d'autres contraintes. Dans la pratique, il est courant d'effectuer d'abord un chargement par lot, puis d'utiliser la CDC pour la synchronisation. Ce processus implique les actions suivantes :
Cette méthode de capture instantanée et de rattrapage garantit que la destination est entièrement alimentée avec les données historiques, puis qu'elle reste parfaitement synchronisée avec toutes les modifications ultérieures en temps réel. C'est ainsi que les services gérés comme Datastream et Database Migration Service de Google Cloud effectuent des remplissages fiables et fluides.
Pour gérer ce processus de manière fiable, la CDC s'appuie sur des identifiants uniques dans le journal des transactions, généralement appelés numéros de séquence des journaux (LSN). Ces numéros servent de signets précis pour le flux de modifications. Ils sont essentiels pour :
Ces mécanismes (le journal des transactions, l'instantané initial et le numéro de séquence du journal) fonctionnent de concert pour rendre la CDC de base de données à la fois très efficace et fiable.
La CDC peut offrir plusieurs avantages qui la rendent indispensable dans les workflows de données modernes :
Cohérence des données entre les systèmes
Synchronise les modifications en temps réel, ce qui réduit les écarts et assure une plus grande justesse des données sur les différentes plates-formes.
Déplacement efficace des données
Permet de capturer uniquement les modifications au lieu de l'intégralité des ensembles de données, ce qui contribue à réduire considérablement la charge du système et l'utilisation du réseau.
Intégration parfaite
Connecte vos systèmes à l'aide d'une bibliothèque de connecteurs prédéfinis. De nombreuses plates-formes fournissent des interfaces sans code pour configurer des pipelines et gérer automatiquement des tâches de backend complexes telles que la détection de la dérive de schéma et les transformations de données en cours de transfert, ce qui garantit que vos données circulent sans interruption.
Résilience opérationnelle
Facilite la reprise après sinistre et la réplication en assurant automatiquement la synchronisation des systèmes et des sauvegardes, sans intervention manuelle.
Insights en temps réel
Permet d'accéder aux données les plus récentes en un instant, ce qui accélère la prise de décisions et la rend plus éclairée. Cette agilité peut offrir un avantage décisif dans les environnements dynamiques comme les marchés financiers, l'e-commerce et la logistique, où la valeur des données se dégrade en quelques secondes.
Plusieurs technologies se chevauchent ou complètent la CDC, offrant des approches variées pour gérer les modifications apportées aux données et permettre leur traitement en temps réel. Voici les différences entre la CDC et d'autres approches courantes :
Le traitement HTAP combine les charges de travail transactionnelles (OLTP) et analytiques (OLAP) dans un seul système, ce qui permet d'effectuer immédiatement des analyses sur les données. Le traitement HTAP est donc particulièrement adapté aux analyses unifiées dans un environnement autonome, mais peut avoir du mal à se synchroniser avec différentes sources de données distribuées à l'échelle d'une organisation. La CDC, quant à elle, excelle dans le maintien de la cohérence des données entre plusieurs systèmes et dans l'activation des workflows distribués.
Les requêtes fédérées et une approche similaire appelée "tables externes" permettent à un entrepôt de données ou à un moteur de requête de lire les données directement à partir d'un système source externe, tel qu'une base de données transactionnelle, au moment de l'exécution d'une requête. Cette approche évite de copier ou de déplacer les données, et permet d'accéder en direct aux informations là où elles se trouvent.
Cette méthode est idéale pour les analyses ad hoc ou les requêtes ponctuelles, car elle offre un accès immédiat sans nécessiter la configuration d'un pipeline de réplication. Toutefois, pour les requêtes fréquemment utilisées ou sensibles aux performances, cette approche peut être inefficace, car elle impose une charge directe au système opérationnel source à chaque requête. Contrairement à la CDC, qui envoie de manière proactive un flux de modifications vers une destination pour optimiser les analyses, la fédération extrait les données à la demande, ce qui peut ne pas convenir aux charges de travail à haute fréquence.
Kafka est une plate-forme Open Source conçue pour le traitement et la diffusion des données à haut débit. Bien qu'elle gère efficacement les flux de données à grande échelle, Kafka complète la CDC plutôt que de la remplacer. La CDC se concentre sur la capture précise des modifications apportées à une base de données en temps réel, tandis que Kafka diffuse des données d'événement plus générales, comme un clic vers un site Web, la lecture d'un capteur IoT ou l'ajout d'un article à un panier. Ensemble, ces technologies peuvent créer une combinaison puissante pour les workflows en temps réel.
La CDC utilise une approche sans code pour répliquer les données, tandis que les technologies d'intégration qui se connectent au niveau de la couche d'application connectent les systèmes et les plates-formes SaaS à l'aide d'une approche low-code. Si vous souhaitez transformer les données lors de leur transfert entre les plates-formes, les produits d'intégration au niveau des applications, tels que Application Integration de Google Cloud, peuvent être plus adaptés.
Datastream est le service de capture des données modifiées (CDC) et de réplication sans serveur, fiable et facile à utiliser de Google Cloud. Il minimise la latence tout en permettant la synchronisation des données entre différentes bases de données et applications. Voici quelques ressources pour vous guider :
Commencez à créer des applications sur Google Cloud avec 300 $ de crédits offerts et plus de 20 produits toujours gratuits.