Jump to section

Cos'è l'acquisizione delle modifiche ai dati (CDC)?

Copia URL

L'acquisizione delle modifiche ai dati è un modello di integrazione dei dati comprovato che permette di monitorare le variazioni apportate ai dati e di avvisare i sistemi e i servizi interessati da tali cambiamenti. L'acquisizione delle variazioni apportate ai dati aiuta a mantenere coerenza e funzionalità in tutti i sistemi che si basano sui dati.

I dati sono un elemento essenziale per qualsiasi organizzazione. Tenere il passo con i continui aggiornamenti e con le modifiche a cui sono soggetti però non è semplice. Che si tratti di transazioni, ordini, giacenze o clienti, disporre di informazioni aggiornate in tempo reale è indispensabile per il buon funzionamento di un'azienda. Quando ad esempio si aggiorna un ordine di acquisto, si aggiunge un nuovo cliente o si riceve un pagamento, è necessario che tutte le applicazioni dell'organizzazione siano informate della modifica cosicché possano eseguire correttamente i loro processi.

L'aggiornamento di un database sorgente, in particolare se si tratta di database relazionali come Oracle, Microsoft SQL Server, Postgres o mysql, richiede spesso anche l'aggiornamento di tutta una serie di risorse correlate, come la cache o l'indice di ricerca. L'approccio più semplice consisterebbe nell'eseguire l'upgrade delle applicazioni per aggiornare le risorse simultaneamente. Tuttavia, la trascrizione coerente dei dati modificati su più destinazioni genera numerosi problemi e difficoltà di coordinamento. La CDC invece consente di evitare problemi come la doppia scrittura e di aggiornare le risorse accuratamente e simultaneamente.

Ma come opera la CDC? La CDC monitora le variazioni a livello di riga nelle tabelle di origine del database (classificate come eventi di inserimento, aggiornamento ed eliminazione) e poi rende disponibili le modifiche, secondo l'ordine in cui sono state apportate nel database sorgente, a tutti i sistemi e i servizi che si basano su quei dati. Questa modalità di integrazione dei dati garantisce che tutte le parti interessate da un determinato insieme di dati vengano informate in maniera puntuale delle variazioni e possano agire di conseguenza, modificando la propria versione dei dati o innescando dei processi aziendali.

La CDC ha acquisto un ruolo di primo piano nelle moderne architetture basate su microservizi perché in grado di collegare i database tradizionali con le architetture guidate dagli eventi e cloud native. Questo significa che con la CDC le aziende possono continuare a utilizzare i database esistenti, ma sfruttarne le informazioni al meglio grazie alle tecnologie emergenti. Per i nuovi deployment, la CDC prevede modelli e schemi, come il modello "outbox", che permettono ai microservizi di scambiare i dati consolidati a partire da una transazione di database.

La CDC si occupa di acquisire le modifiche al database ma necessita di un servizio di messaggistica che recapiti le notifiche di avvenuta variazione ai sistemi e alle applicazioni interessate. La modalità più efficiente per eseguire tale passaggio è trattare le modifiche come eventi, come nel caso delle architetture guidate dagli eventi (EDA), e inviarle in maniera asincrona.

Apache Kafka è lo strumento ideale per garantire la comunicazione asincrona fra il database e i consumer dei dati che hanno bisogno di un modello di consumo riutilizzabile e adatto a grandi volumi di dati. Apache Kafka è una piattaforma per il data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di eventi in tempo reale. È una soluzione ad elevata efficienza e scalabilità, progettata per gestire i flussi di dati provenienti da più sorgenti e per indirizzare i dati a più destinatari.

L'acquisizione delle variazioni apportate ai dati garantisce che gli eventi trasmessi da Kafka siano coerenti con le modifiche apportate al sistema sorgente o al database originale. Poiché la messaggistica Kafka è asincrona, gli eventi non vengono associati ai consumer, consentendo una distribuzione più affidabile di tutte le modifiche.

A differenza del processo basato su query o su polling, le piattaforme di acquisizione delle modifiche ai dati, come Debezium, monitorano le variazioni nei database prendendo in esame il log delle transazioni. 

La CDC basata sul log delle transazioni offre numerosi vantaggi rispetto alle alternative. Ad esempio:

  • Individua tutte le modifiche. La CDC è concepita per acquisire tutte le modifiche apportate al database. Senza la CDC, le modifiche intermedie e i nuovi dati, come aggiornamenti ed eliminazioni, tra due fasi del ciclo continuo di polling potrebbero passare inosservati.
  • Riduce il sovraccarico. L'unione della CDC e di Kafka offre l'aggiornamento dei dati praticamente in tempo reale e, a differenza del ciclo continuo di polling, non rischia di sovraccaricare la CPU.
  • Non ha ripercussioni sul modello di dati. La CDC non necessita di colonne che indichino la marca temporale per stabilire quando è avvenuta l'ultima modifica dei dati.

Gli esempi riportati di seguito sono alcuni degli scenari di utilizzo per la CDC.

Integrazione di microservizi

È possibile utilizzare la CDC per sincronizzare i microservizi con le applicazioni monolitiche tradizionali e agevolare il trasferimento delle modifiche ai dati dai sistemi esistenti alle applicazioni basate su microservizi.

Replica dei dati

La CDC è utile anche per replicare i dati in più database, data lake e data warehouse in modo che tutte le risorse dispongano sempre dell'ultima versione dei dati. Questo significa che grazie alla CDC tutti i team hanno sempre accesso agli stessi dati aggiornati, anche nel caso di team distribuiti (o perfino isolati). 

Dashboard di analisi

La CDC serve inoltre per inviare ai dashboard di analisi le modifiche ai dati in modo da ottimizzare i processi di business intelligence e quelli che richiedono decisioni immediate.

Verifica e conformità

Per garantire il rispetto dei requisisti di conformità in materia di dati ed evitare di incorrere in sanzioni, è necessario conservare lo storico delle modifiche apportate ai dati. La CDC può aiutare anche in questo caso: permette infatti di salvare le modifiche ai dati per motivi di controllo o archiviazione. 

Invalidazione della cache

La CDC è utilizzata anche per l'invalidazione della cache con cui vengono sostituiti o rimossi i dati obsoleti e mostrate le versioni più recenti.

Aggiornamenti del modello CQRS

È possibile utilizzare la CDC per sincronizzare i modelli di lettura CQRS (Command Query Responsibility Separation) con i modelli principali.

Ricerca full text

La CDC può essere impiegata anche per sincronizzare automaticamente un indice di ricerca full text con il database.

L'acquisizione delle modifiche ai dati aiuta le aziende ad accelerare i processi decisionali guidati dai dati, riducendo così le perdite di tempo, energie e guadagno.

Massimizza il valore dei dati

La CDC aiuta a massimizzare il valore dei dati permettendo alle aziende di sfruttare le informazioni per più scopi. Offrendo un metodo per aggiornare in modo coerente gli stessi dati nei diversi compartimenti, la CDC permette di sfruttare appieno i dati e di preservarne l'integrità.

Mantieni aggiornata l'organizzazione

La CDC permette di mantenere i database e le applicazioni sincronizzati con le ultime versioni dei dati, garantendo in ogni momento l'accesso alle informazioni più aggiornate.

Ottimizza e accelera i processi decisionali

Fornendo le ultime versioni dei dati, la CDC aiuta gli utenti aziendali a prendere decisioni più accurate e più rapidamente. Poiché i dati utili per i processi decisionali diventano obsoleti in poco tempo, permettere a tutte le parti interessate di accedere a strumenti di analisi dei dati aggiornati in tempo reale e in maniera accurata, quali CDC e Kafka, è indispensabile per garantire un business competitivo.

Minimizza i ritardi nell'esecuzione delle operazioni

Quando i dati distribuiti in più sistemi non sono sincronizzati, il rischio che si verifichino dei problemi è elevato e può riguardare le operazioni più disparate, tra cui la riconciliazione degli ordini, l'elaborazione delle transazioni, l'erogazione dei servizi ai clienti, la creazione di report, il rispetto dei programmi di produzione e così via. Un problema in una qualsiasi di queste operazioni genera dei ritardi e costituisce quindi una perdita di guadagno per l'azienda. La CDC aiuta a salvaguardare il buon funzionamento delle operazioni consentendo la sincronizzazione a bassa latenza dei dati presenti sui diversi sistemi.

Combinando Debezium, Red Hat AMQ Streams e Apache Kafka, Red Hat Integration offre capacità di acquisizione delle modifiche ai dati. Debezium è una piattaforma open source distribuita per la CDC basata su log che consente di acquisire le modifiche ai dati a partire da diversi sistemi di database. La rapidità e l'affidabilità della piattaforma permettono di ottimizzare i tempi di reazione delle applicazioni.

Keep reading

Articolo

Cosa si intende per integrazione?

Cos'è l'integrazione? Scopri cos'è, come introdurla e i vantaggi che offre se abbinata all'open source.

Articolo

Come funziona Apache Kafka?

Apache Kafka è una piattaforma per il data streaming distribuita che permette di pubblicare, sottoscrivere, archiviare ed elaborare flussi di record in tempo reale.

Articolo

Cos'è un'API?

API è l'abbreviazione di interfaccia di programmazione delle applicazioni (application programming interface), un insieme di definizioni e protocolli per la creazione e l'integrazione di software applicativi.

Scopri di più sull'integrazione

Prodotti

Set completo di tecnologie per l'integrazione e la messaggistica.

Accelera la distribuzione e lo sviluppo applicativo.

Trasforma il tuo business e soddisfa le richieste di un mercato in costante evoluzione.

Semplifica l'esperienza nel cloud ibrido e riduci i costi operativi e la complessità della distribuzione di applicazioni cloud native.

Scopri come progettare. distribuire ed eseguire le applicazioni in maniera sicura in ambienti cloud ibridi su larga scala.

Risorse

Ebook

Creare un'infrastruttura agile per dare vita a un'azienda adattiva

Formazione

Corso di formazione gratuito

Red Hat Agile Integration Technical Overview