Les entreprises d’aujourd’hui, en particulier celles qui donnent la priorité à la transformation numérique, ont cruellement besoin de données en temps réel. Le traitement traditionnel par lots hebdomadaires et mensuels ne peut plus répondre à la demande. Cependant, il n’est pas facile d’obtenir des données en temps réel provenant de plusieurs sources et de les utiliser pour automatiser les processus et optimiser les décisions de manière dynamique.
Récemment, nous avons rencontré un défi lors de la réarchitecture du système existant d'un client et de la division de l'architecture monolithique en microservices. Nous avons commencé à apporter des modifications à la base de données et à moderniser le système par module. À ce stade, nous devons nous assurer que les deux bases de données restent synchronisées, car différents modules peuvent nécessiter les mêmes données. En d'autres termes, l'ancien système requiert les données générées par le nouveau système dans la nouvelle base de données, et vice versa.
Nous avons étudié la technologie Change Data Capture (CDC) pour déterminer si elle répondait à nos besoins. L'article détaille la définition de CDC, les outils que nous avons testés, leur fonctionnement et leurs avantages. Parallèlement, nous avons partagé quelques cas et suggestions pour aider d'autres techniciens à choisir l'outil CDC approprié dans des situations spécifiques.
La capture de données fait référence au processus de détection et de capture des modifications dans le système source, puis de transmission de ces modifications au système cible en temps quasi réel. Ces modifications peuvent inclure des opérations d'insertion, de suppression, de mise à jour et des modifications DDL de la structure de la base de données.
Les outils CDC implémentent leurs fonctionnalités en surveillant les modifications des données dans les systèmes sources. Une fois qu'un changement est découvert, l'outil CDC le capture et l'enregistre dans un emplacement désigné, tel qu'une base de données ou un fichier journal. Les données traitées et transformées sont ensuite chargées dans un système cible, tel qu'un entrepôt de données ou une plateforme d'analyse.
Il existe plusieurs façons de capturer les modifications de la base de données. Jetons un coup d'œil à quelques-uns d'entre eux :
Dans cette méthode, nous conserverons certaines colonnes d'audit similaires à CREATED_AT, LAST_UPDATED ou DATE_MODIFIED dans la source et détecterons les modifications dans ces colonnes en interrogeant les données dans la source pour capturer toute modification de données. Il est à noter que cette méthode n'enregistre pas les opérations de suppression.
Un déclencheur est une fonction de la base de données qui effectue une action basée sur un événement spécifique. Bien qu'utile pour capturer toute modification, y compris les opérations de suppression, cela réduit les performances de la base de données car chaque événement nécessite plusieurs écritures.
La base de données contient des journaux de transactions pour la récupération en cas de crash, stockant tous les événements. Avec CDC basé sur les journaux, les nouvelles transactions de base de données sont lues directement à partir du journal natif, ce qui permet de capturer les modifications sans analyser la table source et est donc plus efficace.
Cette approche est similaire au sourcing d'événements dans une architecture basée sur les événements. Chaque fois que l'état du système change, nous l'enregistrons comme un événement. Les événements enregistrés peuvent être rejoués dans le même ordre pour reconstruire l'état du système à tout moment.
CDC est essentiel dans de nombreux scénarios en fonction de la situation, de l'application, de l'architecture et des besoins de l'entreprise. Voici quelques-unes des façons dont le CDC contribue au processus d'ingénierie :
Il existe plusieurs outils CDC sur le marché, tels qu'Oracle Golden Gate, Debezium, IBM Infosphere, Striim, StreamSets et Qlik Replicate. Ces outils peuvent être open source ou payants. Ils prennent généralement en charge les environnements sur site et cloud et peuvent gérer diverses sources de données. Lors du choix, tenez compte des éléments suivants :
À mesure que les entreprises se tournent vers la technologie, les données historiques et actuelles deviendront un différenciateur essentiel. Parvenir à une capture précise, rapide, efficace et rentable des données sur les changements constituera un élément important de tout programme de transformation technologique. Lorsque vous faites face à cette situation, j’espère que cet article pourra vous aider.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!