Debezium : suivre votre activité en continu
Vous êtes directeur de produit et vous devez produire l’analyse comparative des ventes hebdomadaires de la semaine en cours par à S-1. Votre malheur c’est que vous n’avez ni data warehouse, ni data lake, ni même data lakehouse. Vous demandez aux personnes qui gèrent les applications et les bases de données. Et là… c’est la quatrième dimension !
Il vous est expliqué que vous ne pouvez pas interroger la base de données transactionnelle directement ! Heureusement il y a une réplication de celle-ci ! Mais, vous ne pouvez pas plus l’interroger pour y exécuter des requêtes qui la pourraient surcharger : il y a de nombreux petits traitements qui propagent les données vers les autres applications de votre organisation.

Ce scénario existe malheureusement !
Il y a eu de nombreux progrès dans l’architecture des bases de données. Toutefois, il y a quelques points de leur architecture qui n’évoluent pas assez vite. Les bases de données dites opérationnelles ne vont pas être efficientes pour traiter massivement les données qui y sont stockées. Il y a encore une vraie dichotomie entre base de données qui stockent les données des logiciels opérationnels et les bases de données dites analytiques.
Notre directeur produit est donc bien embêté pour obtenir une vision un peu plus instantanée de son activité tout en la comparant par rapport à l’historique.
Un peu de technique ! Les bases de données une fois la transaction validée l’enregistre dans un journal. Et par chance, lire ce journal n’affecte pas les performances de la base de données.
C’est ce que l’on appelle le “Change Data Capture” !
Le “Change Data Capture” – CDC pour les intimes – renvoie aux mécanismes qui captent les modifications de données dans une base de données opérationnelles et transactionnelles (source) sous forme d’événements pour les diffuser vers divers systèmes (cibles) tels que les lacs de données, les entrepôts, des moteurs de recherche ou une autre base de données relationnelle. Toutes les opérations réalisées depuis la base de données source sont prises en compte : insertion de nouvelle données (INSERT), mise à jour (UPDATE) ou suppression (DELETE). De fait, les systèmes cibles restent connaissent très exactement la même série d’événements du système source : les deux environnement sont “synchronisés”.
Il existe plusieurs architectures de Change Data Capture. Leur implémentation consiste le plus souvent, pour des questions de performance, à lire le journal d’événements de la base de données.


Cas d’usage
Les cas d’usage du Change Data Capture sont nombreux et il apparaît clairement que l’on pourra en créer de nouveaux :
- Réplication de données entre bases de données
Par exemple, vous pouvez répliquer les données issues de votre solution e-commerce vers le data warehouse ou le lakehouse.
- Migration des données sur site vers le cloud, vers un autre site
Vous avez pris le parti de déménager vos applications d’un site vers un autre. Vous montez votre infrastructure dans l’environnement cible. Avant le lancement en production, vous synchronisez les bases de données source et cible afin qu’au moment de votre bascule toutes les données en cible sont bien celles de la source.
- Intégration de données avec les architectures microservices
Dans le cadre de pareilles architectures il est important de que les microservices aient les données utiles à leurs bonnes marches. Les données stockées dans la base de données d’un service A sont en partie synchronisées vers le service B.
- Maintenir les caches et les index des applications opérationnelles
Par exemple de le cadre de l’e-commerce, lorsque la base produits est mise à jour, il faut synchroniser les modifications avec le moteur de recherche
- Mise en œuvre de rapports et d’analyses en temps réel
Avec les données aussi fraîches, il est possible qu’on peut clairement éclairer les opérationnels au plutôt.
- Maintenir des journaux d’audit pour la conformité
Conserver un journal des transformations de la données prend tellement de sens aujourd’hui avec le RGPD ou tout autre norme.

Debezium

Comme nombre d’éléments en informatique, tout ceci n’est pas tant une nouveauté !
Néanmins le CDC devient une commodité ! Et ça c’est grâce à Debezium qui est désormais embarqué partout ! Qui plus est, la simple librairie prend son envol et s’émancipe de son cocon d’origine ! Debezium Server est de plus en plus plébiscité pour sa simplicité vis à vis d’une architecture certes plus robustes mais plus complexe lorsqu’il est soutenu par Apache Kafka.
Debezium offre aux ordinations la capacité à bâtir des stratégies d’intégration de données fiable, robuste, et en temps réel ! Les organisations activent aisément l’analyse temps réel, la synchronisation de bases de données,
Toute l’organisation profite des bénéfices de Debezium
-
-
- Avec une donnée qui est régulièrement remonté sans discontinuité, les métiers peuvent prendre des décisions avec des données consolidées à l’image de la base de données opérationnelles
-
-
- Avec des données toujours à jour, le data analyste construit des rapports ou tableaux de bord toujours plus proches de la réalité propre de l’activité.
- Le pôle data (décisionnel, business intelligence)
-
-
- Cette division met à disposition des documents analytiques qui reflètent les données les plus récentes. La capacité à mettre à jour en temps réel améliore la qualité et la fiabilité des outils et stratégies BI.
-
-
- Avec Debezium le data scientist met à jour les modèles d’apprentissage de manière plus automatisée et en continue. Basés sur les informations les plus récentes, les modèles s’en trouvent améliorée, plus précis et plus pertinents.
-
-
- Le métier le plus sexy du 21ème ! Le plus important de la chaîne de la donnée.
- Le data engineer rationalise processus d’intégration de données et devient immédiatement productif ! Un paramétrage et hop on collecte toute une base de données et l’on ne produit pas autant de traitement qu’il n’y a de tables.
- Les administrateurs de bases de données
-
-
- Ici, Debezium va accomplir des tâches encore plus techniques : répliquer des bases de données ! Les administrateur de base de données s’assurent de l’intégrité des données, L’administrateur de bases de données peut dès lors préparer son PRA.
- Les développeurs de logiciels
-
- Les développeurs de logiciels peuvent intégrer Debezium dans leurs applications pour activer des fonctionnalités en temps réel telles.

Déployer Debezium
Kafka Connect
Debezium a démarré tel un connecteur de collecte pour Apache Kafka Connect ! Ce mode de déploiement offre effectivement de nombreux avantages comme la scalabilité et la performance. Son inconvénient réside dans le fait que tout le monde ne souhaite pas gérer un cluster Apache Kafka pour faire du Change Data Capture, en particulier si l’on ne va pas exploiter le broker par ailleurs.
Voilà pourquoi Debezium Server a fait son entrée.
Debezium Server
Debezium Server est finalement une simple application cloud native développée avec Quarkus qui prend en compte un fichier de paramétrage afin qu’il sache quelle est la source, quelle est la cible. Ca en fait un système de synchronisation de données léger !
Sa robustesse s’articule autour d’un mécanisme qui renseigne tout au long de son exécution en continue où il en est ! Si bien que s’il échoue ou il doit être arrêté pour redémarrer, il reprend là où il en était.
Debezium Server peut être déployé là où on le souhaite : bare metal, VM, container. Un opérateur pour Kubernetes existe.
Debezium Server embarque Debezium engine.
Debezium Engine
Le cœur de Debezium ! Debezium Engine facilite la mise en œuvre d’outil de capture de données ! Debezium se trouve donc embarqué dans un nombre de solutions toujours plus importantes mois après mois. Un bel exemple est Apache Flink qui est une implémentation significative de Debezium Engine.

Toute cette lecture pour vous amener à Debezium Server Iceberg !
Le format Table Apache Iceberg est devenu le standard pour stocker la donnée afin de pouvoir l’analyser de manière performante !
La communauté attendait avec impatience un outil aussi puissant que celui-ci : une solution qui simplifie et optimise le transfert de vos données vers Apache Iceberg ! Tirez pleinement parti d’Apache Iceberg, en toute simplicité, même lorsque vos données sont en constante évolution. La configuration est un jeu d’enfant : remplissez simplement un fichier et assurez vous que vos données sont acheminées vers la bonne destination.
En savoir plus sur Debezium
En savoir plus sur Apache Iceberg