Capture de données modifiées : présentation, pourquoi et meilleures pratiques

WBOY
Libérer: 2024-02-19 15:42:18
avant
545 Les gens l'ont consulté

Capture de données modifiées : présentation, pourquoi et meilleures pratiques

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.

Qu'est-ce que la capture de données modifiées ?

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.

Comment fonctionnent les outils de capture de données de changement

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 :

1. Basé sur l'horodatage/requête

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.

2. Basé sur un déclencheur

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.

3. Basé sur les journaux

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.

Pourquoi utiliser CDC ?

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 :

  • Disponibilité des données en temps réel : les outils CDC capturent les changements en temps quasi réel, garantissant ainsi que les données les plus récentes sont disponibles pour l'analyse, la création de rapports ou un traitement ultérieur.
  • Prise de décision plus rapide : CDC aide à réduire les délais entre la capture et la disponibilité des données, permettant une analyse et une prise de décision plus rapides.
  • Intégration efficace des données : les outils CDC aident à capturer des données provenant de plusieurs sources opérationnelles et à les convertir dans un format commun dans une base de données ou un lac de données cible unique.
  • Conception personnalisée de la base de données cible : CDC offre des avantages interfonctionnels, tels que la création de bases de données de recherche ou de requêtes en lecture seule dans les systèmes CQRS, la création de bases de données d'audit ou la capture de données dans des entrepôts de données. Il permet de dissocier les exigences non fonctionnelles et architecturales du magasin de données principal.
  • Migration de données simplifiée : dans notre cas, CDC aide à maintenir la cohérence des données entre les bases de données existantes et les nouvelles pendant la phase de modernisation. Cela s'applique également à divers autres scénarios de migration de données.

Comment choisir le bon outil CDC ?

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 :

  • Compatibilité avec les sources de données : au minimum, l'outil que vous choisissez doit être compatible avec toutes les sources de données dans lesquelles vous souhaitez capturer les modifications.
  • Capture de données en temps réel : les outils doivent capturer les changements en temps quasi réel afin que vous puissiez travailler avec les données les plus récentes.
  • Conversion et intégration des données : les outils CDC doivent être capables de gérer la conversion des données des types de données source vers les types de données cibles.
  • Prix : les outils CDC doivent être rentables pour votre cas d'utilisation. Il existe des produits open source, payants et sous licence.
  • Facilité d'utilisation et d'assistance : l'outil doit être facile à utiliser pour votre équipe et fournir un support adéquat, y compris une documentation complète et un support technique.
  • Autres fonctionnalités : en fonction de vos besoins, vous souhaiterez peut-être également consulter d'autres fonctionnalités spécifiques, telles que la synchronisation bidirectionnelle entre la source et la destination et la prise en charge du cloud.

À 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!

Étiquettes associées:
source:mryunwei.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal