Capture des modifications de données (CDC) : Une technique pour détecter les changements de données

La capture de données modifiées est un processus qui facilite la surveillance des modifications de données au sein des systèmes de BD. Il devient crucial d’identifier les changements de données dans les BD et, par la suite, de détecter les anomalies.
5 minutes de lecture
Naveen Kumar Jain

Author

Naveen Kumar Jain
Gestionnaire technique de groupe
5 minutes de lecture
Capture de données modifiées (CDC) : une technique pour détecter les changements de données

Contexte

Le but de ce blogue est de fournir une compréhension approfondie de la capture de données modifiées (CDC), ainsi que de son importance et des techniques pour l’atteindre.

Capture de données modifiées (CDC)

qute-color

La capture de données modifiées (CDC) est une technique ou un processus qui facilite la surveillance et la capture des modifications de données dans les systèmes de bases de données (BD).

Partager  

Capture de données modifiées (CDC)

La capture de données modifiées (CDC) est une technique ou un processus par lequel les changements de données peuvent être suivis et capturés dans les systèmes de bases de données (BD). Elle facilite l’identification des modifications de données qui surviennent dans les bases de données après un certain point et la validation des anomalies, le cas échéant. Ces anomalies de données peuvent nécessiter une analyse afin d’en trouver la cause première et de corriger les problèmes liés à la logique métier de l’application, si jamais il y en a. La CDC est particulièrement adaptée aux architectures modernes (par exemple, les plateformes infonuagiques) qui sont très efficaces pour déplacer et fournir des données sur Internet ou à l’intérieur d’un réseau spécifique.

Où peut-on appliquer la CDC?

Trois grands cas ont été identifiés où la CDC peut être appliquée. Cependant, son applicabilité ne se limite pas seulement à ces trois cas.

Cas 1 : La CDC est bénéfique pour les modifications de données apportées aux systèmes légaciels où le schéma de base de données (DBSchema) ne possède aucune colonne d’horodatage ni de journalisation transactionnelle activée. En fait, intégrer tout nouveau changement dans le DBSchema et dans la logique d’affaires peut s’avérer source d’erreurs, présentant un risque de devoir effectuer des tests de régression complets ou exhaustifs.

Cas 2 : La CDC peut être avantageuse pour des cas d’utilisation où la modernisation des systèmes traditionnels vise à remplacer complètement les applications existantes, après leur mise à jour réussie vers les technologies ou plateformes les plus récentes. Pour mieux comprendre, supposons qu’il y a deux systèmes qui fonctionnent au sein de la même application, dont l’un est un système légaciel et l’autre la version modernisée de l’application. Pour réussir la transition, il faut vérifier les anomalies de données imprévues qui pourraient survenir. Ce processus sera utile pour juger de la justesse de la modernisation, ce qui facilitera le parachèvement du remplacement du système légaciel.

Cas 3 : La CDC peut s’avérer utile dans les systèmes modernes où les ensembles de données sont très volumineux et doivent typiquement être stockés dans des entrepôts de données infonuagiques ou des lacs de données. Ces données sont utilisées par l’IA/apprentissage automatique pour effectuer des prédictions et des analyses plus poussées, ainsi que pour les rapports de BI. Ces processus nécessitent le chargement de l’ensemble complet des gros volumes de données, ce qui peut s’avérer très coûteux et hautement intensif en ressources CPU et en temps, d’où l’utilité de la CDC.

Approches de la CDC par défaut

Bien qu’il existe plusieurs façons de mettre en œuvre la CDC, certaines ne sont pas disponibles dans les anciennes bases de données. Afin d’éviter l’impact sur les transactions et la dégradation des performances du serveur de bases de données, les administrateurs de bases de données (DBA) privilégient la CDC intégrée, qui consiste en une approche basée sur les journaux, mise en œuvre à l’interne dans SQL Server, Oracle et certaines autres bases de données. Toutefois, la question de l’application de la CDC aux systèmes légaciels demeure, étant donné que cette fonctionnalité interne est absente. Bien que cette question reste sans réponse, il existe des moyens d’obtenir la CDC à partir de ces systèmes.

Application de la CDC

L’application de la CDC est une façon de collecter ou de rassembler les données qui ont été modifiées par des commandes telles que les insertions, les mises à jour et les suppressions. Toutefois, rassembler de telles données est une tâche ardue, car il est possible que, dans certains systèmes légaciels, la journalisation transactionnelle ou l’horodatage ne soit pas mis en œuvre (c’est notamment le cas des applications principales et des systèmes de bases de données traditionnels).

Pour le cas 1 : Dans ce scénario, la CDC peut être réalisée en extrayant des ensembles de données des systèmes légaciels et en les alimentant dans un système de traitement analytique en ligne (OLAP). Il s’agit de systèmes dans lesquels une gamme plus complète d’instructions SQL est offerte pour traiter de gros ensembles de données sur des systèmes hautement disponibles et évolutifs. Par l’application de la CDC, l’utilisateur peut identifier et capturer les modifications de données à des fins d’analyse, si nécessaire. Ici, le chargement complet de grands ensembles de données est très coûteux et peut demander beaucoup de ressources CPU et de temps.

CDC

Voici les étapes expliquant le déroulement du schéma ci-dessus :

Étape 1 : Extraire les ensembles de données à partir des systèmes légaciels

Étape 2 : Selon le besoin, une transformation peut s’avérer nécessaire avec les ensembles de données sources

Étape 3 : Alimenter les ensembles de données dans les systèmes OLAP (qu’ils soient sur le nuage ou sur site)

Étape 4 : Depuis l’OLAP, les modifications de données capturées après la CDC seront désormais disponibles pour l’analyse, le traitement et la production de rapports

Pour le cas 2 : Pour parvenir à un système effectivement modernisé, la détection des anomalies entre les systèmes légaciels et les systèmes modernisés devient cruciale. Il existe des garanties d’obtenir des données basée sur les journaux à partir des systèmes modernisés, mais les chances d’obtenir des données à partir de systèmes légaciels sont très faibles. Dans un tel scénario, la CDC peut être réalisée en alimentant les ensembles de données extraits des deux systèmes dans un système OLAP. Les ensembles de données issus des deux systèmes, lorsqu’ils sont traités avec des systèmes OLAP, peuvent aider à détecter les anomalies de données. Par l’application de la CDC, nous pouvons identifier et capturer les changements de données des deux systèmes. Les changements ou anomalies détectés peuvent être signalés ou traités pour l’analyse. Comme dans le premier cas, le chargement de gros ensembles de données est très coûteux et exige à la fois du temps et des ressources CPU.

CDC2

Voici les étapes expliquant le déroulement du schéma ci-dessus :

Étape 1 : Extraire les ensembles de données des systèmes légaciels et modernisés

Étape 2 : Selon le besoin, une transformation peut s’avérer nécessaire à la source sur les ensembles de données provenant à la fois du légaciel et du modernisé

Étape 3 : Alimenter dans les systèmes OLAP les ensembles de données provenant des deux sources (qu’ils soient sur le nuage ou sur site)

Étape 4 : Depuis l’OLAP, les données CDC sont désormais disponibles pour l’analyse, le traitement et la production de rapports.

Pour le cas 3 : Dans ce scénario, la CDC peut être réalisée en extrayant des ensembles de données de systèmes modernes, puisqu’il s’agit de systèmes basés sur les journaux, les horodatages ou les déclencheurs. À partir de là, les ensembles de données les plus récents peuvent être extraits et traités dans des systèmes OLAP selon les besoins. Ici, la CDC peut ne pas être coûteuse, ni demander beaucoup de ressources CPU ou de temps, puisqu’on ne traite que des données incrémentielles.

CDC2

Voici les étapes expliquant le déroulement du schéma ci-dessus :

Étape 1 : Extraire l’entièreté des ensembles de données des systèmes sources une seule fois

Étape 2 : Selon le besoin, une transformation peut s’avérer nécessaire avec les ensembles de données sources

Étape 3 : Alimenter les ensembles de données dans les systèmes OLAP (qu’ils soient sur le nuage ou sur site)

Étape 4 : La prochaine fois, seuls les journaux de transactions seront extraits, et grâce à l’outil de fouille de journaux, les changements seront ajoutés aux systèmes OLAP

Étape 5 : Depuis l’OLAP, les données CDC sont désormais disponibles pour l’analyse, le traitement et la production de rapports.

Conclusion

La CDC sera utile pour identifier les modifications de données dans un ou plusieurs systèmes. Elle peut aider à éviter le risque d’un test de régression complet. D’autres méthodes sont disponibles pour obtenir la CDC des bases de données tout en offrant la souplesse et la possibilité de personnalisation supplémentaire. Dans ce blogue, nous avons présenté un survol de la CDC et des façons de l’appliquer pour en tirer parti en matière d’analyse ou de production de rapports sur les données CDC.

Références

https://en.wikipedia.org/wiki/Change_data_capture

https://medium.com/google-cloud/a-batch-driven-cdc-change-data-capture-approach-using-google-cloud-platform-5595fe6f98f4

https://medium.com/google-cloud/bigquery-table-comparison-cea802a3c64d

Senthil Thangaiah

Coauteur

Senthil Thangaiah
DIRECTEUR TECHNIQUE PRINCIPAL
Etiquettes
Partager sur
ERS Génie Blogues Capture des modifications de données (CDC) : Une technique pour détecter les changements de données