Définition
La capture des modifications de données, ou CDC (Change Data Capture), est un modèle d'intégration de données qui permet de suivre et d'horodater les modifications apportées aux données, puis d'alerter les autres systèmes et services concernés par ces changements. Ce processus garantit la cohérence et le bon fonctionnement de tous les systèmes qui reposent sur des données.
Aujourd'hui, les données représentent des ressources essentielles pour toutes les entreprises. Or, elles sont constamment modifiées et mises à jour, et les entreprises doivent absolument suivre tous ces changements. Que ces données concernent des transactions, des commandes, des stocks ou des clients, il est vital de les actualiser en temps réel pour assurer le bon fonctionnement de l'entreprise. Dès la mise à jour d'un bon de commande, l'intégration d'un nouveau client ou la réception d'un paiement, les applications de l'entreprise doivent être informées afin d'exécuter correctement les processus métier essentiels.
Fonctionnement de la capture des modifications de données
Lors de la mise à jour d'une base de données source (bien souvent une base de données relationnelle telle qu'Oracle, Microsoft SQL Server, Postgres ou mysql), il peut être nécessaire de mettre aussi à jour plusieurs ressources associées, par exemple un cache ou un index de recherche. L'approche la plus simple consisterait à mettre à niveau les applications afin de mettre à jour ces ressources en même temps. Il est toutefois difficile de transcrire ces données modifiées de manière cohérente et coordonnée dans plusieurs cibles. La CDC permet d'éviter certains problèmes, comme les doublons, et de mettre à jour les ressources de façon simultanée et avec précision.
La CDC suit les modifications apportées au niveau des lignes dans les tables source des bases de données (événements d'insertion, de mise à jour et de suppression), puis signale ces modifications à tous les autres systèmes ou services qui dépendent des mêmes données. Les modifications sont signalées dans l'ordre où elles ont été apportées à la base de données d'origine. La CDC garantit ainsi que toutes les parties concernées par un certain ensemble de données sont informées avec exactitude des modifications et peuvent réagir en conséquence, soit en actualisant leur propre version des données, soit en déclenchant des processus métier.
Dans les architectures modernes axées sur des microservices, la capture des modifications de données revêt une nouvelle importance, car elle établit un pont indispensable entre les bases de données traditionnelles et les architectures cloud-native orientées événements. En recourant à la CDC, les entreprises peuvent continuer à utiliser leurs anciennes bases de données, tout en valorisant leurs données grâce aux technologies émergentes. Pour les nouveaux déploiements, la CDC facilite l'utilisation de schémas et de modèles pratiques, tels que la « boîte d'envoi », qui permet aux microservices d'échanger les données consolidées issues d'une transaction de base de données.
Des modifications en temps réel avec la CDC et Apache Kafka
La CDC doit être associée à un service de messagerie pour transmettre les notifications des modifications apportées aux bases de données aux systèmes et applications concernés. Le moyen le plus efficace consiste à traiter les modifications comme des événements, comme dans une architecture orientée événements, et à les communiquer de manière asynchrone.
La solution Apache Kafka permet d'assurer une communication asynchrone entre la base de données et les consommateurs de données qui requièrent un modèle de consommation réutilisable et à haut volume. Il s'agit d'une plateforme de diffusion distribuée, capable de publier des flux d'événements en temps réel, de les stocker, de les traiter et d'y souscrire. Elle est conçue pour gérer des flux de données provenant de plusieurs sources et les acheminer vers différentes destinations, avec un débit élevé et une forte évolutivité.
La capture des modifications de données permet de s'assurer que les événements transmis par Kafka sont cohérents avec les modifications apportées au système source ou à la base de données d'origine. Puisque la plateforme de messagerie Kafka est asynchrone, les événements sont dissociés des consommateurs, ce qui permet de distribuer chaque modification de manière plus fiable.
Avantages de l'utilisation de la CDC
Les plateformes de capture des modifications de données, telles que Debezium, suivent les modifications apportées à la base de données au fur et à mesure de leur validation en surveillant le journal des transactions. Il est sinon possible d'utiliser un simple processus de sondage ou d'interrogation.
La CDC, qui exploite le journal des transactions, offre plusieurs avantages par rapport à ces autres solutions :
- Capture de toutes les modifications : la CDC est conçue pour enregistrer chaque modification apportée à la base de données. Sans la CDC, certaines modifications intermédiaires et nouvelles données, telles que des mises à jour et des suppressions, risquent d'être oubliées entre deux passages de la boucle de sondage.
- Faible surcharge : l'utilisation de la CDC en association avec Kafka permet de distribuer les modifications de données en temps quasi réel, ce qui permet d'éviter l'augmentation de la charge du processeur que peuvent causer les fréquentes interrogations.
- Aucun effet sur le modèle de données : avec la CDC, les colonnes d'horodatage ne sont plus nécessaires pour déterminer la dernière mise à jour des données.
Cas d'utilisation
Voici quelques exemples de cas d'utilisation pour la capture des modifications de données.
Intégration des microservices
La CDC peut servir à synchroniser des microservices avec des applications monolithiques traditionnelles, ce qui permet de transposer aisément les modifications de données des systèmes existants aux applications basées sur des microservices.
Réplication des données
La CDC peut être utilisée pour la réplication des données dans plusieurs bases de données, data lakes ou entrepôts de données, afin de garantir que chaque ressource dispose de la dernière version des données. Ainsi, la CDC peut fournir un accès aux mêmes données actualisées à plusieurs équipes distribuées (et même cloisonnées).
Tableaux de bord d'analyse
La CDC peut servir à transmettre des modifications de données vers des tableaux de bord d'analyse, dans le cadre de l'informatique décisionnelle par exemple, afin d'accélérer la prise de décision.
Audit et conformité
Pour respecter les exigences strictes en matière de conformité des données et éviter de lourdes sanctions en cas de manquement, il est essentiel de conserver un historique des modifications apportées aux données. La CDC peut être utilisée pour consigner les modifications de données à des fins d'audit ou d'archivage.
Invalidation du cache
La CDC peut être utilisée pour invalider le cache et ainsi s'assurer que les entrées obsolètes d'un cache sont supprimées ou remplacées par les dernières versions.
Mises à jour des modèles CQRS
La CDC peut assurer la synchronisation des modèles de lecture CQRS (Command Query Responsibility Separation) avec les modèles primaires.
Recherche en texte intégral
La CDC peut être utilisée pour assurer la synchronisation automatique d'un index de recherche en texte intégral avec la base de données.
Avantages de la CDC pour l'entreprise
La capture des modifications de données aide votre entreprise à accélérer la prise de décision fondée sur les données et à réduire les pertes de temps, les efforts inutiles et les manques à gagner.
Maximisez la valeur de vos données
La CDC aide les entreprises à maximiser la valeur de leurs données en leur permettant d'exploiter les informations à différentes fins. En proposant une méthode pour mettre à jour les mêmes données de manière cohérente dans différents silos de données, la CDC offre aux entreprises la possibilité de tirer le meilleur parti des données tout en préservant leur intégrité.
Maintenez l'entreprise à jour
La CDC permet de synchroniser plusieurs bases de données et applications avec les données les plus récentes. Ainsi, les parties prenantes de l'entreprise disposent toujours d'informations pertinentes.
Prenez de meilleures décisions, plus rapidement
La CDC permet aux utilisateurs métier de prendre des décisions plus éclairées et plus rapides en se basant sur les informations les plus récentes. Sachant que les données décisionnelles perdent rapidement de la valeur, il est primordial de les mettre à la disposition de toutes les parties prenantes aussi rapidement que possible, en utilisant la CDC et Kafka. Pour développer et conserver votre avantage concurrentiel, vous devez avoir accès à des analyses fiables et en temps quasi réel.
Évitez les ralentissements
Si les données stockées dans plusieurs systèmes ne sont pas synchronisées, elles peuvent engendrer des problèmes sur ces systèmes, notamment pour le rapprochement des commandes, le traitement des transactions, le service aux clients, la génération de rapports ou le respect des calendriers de production. Chacune de ces situations peut ralentir votre activité, ce qui se traduit par un manque à gagner. La CDC permet à votre entreprise de synchroniser les données sur de nombreux systèmes, avec une faible latence, afin de garantir le bon déroulement de votre activité.
La CDC selon Red Hat : Debezium + Apache Kafka
L'offre Red Hat Integration fournit des fonctions de capture des modifications de données via Debezium, en association avec Red Hat AMQ Streams et Apache Kafka. Debezium est une plateforme Open Source de CDC, distribuée et basée sur les journaux, qui prend en charge la capture des modifications issues de différents systèmes de base de données. Rapide et durable, Debezium permet aux applications de réagir rapidement sans manquer un seul événement.