Change data capture (CDC) è l’acquisizione delle modifiche ai dati. Lo strumento di pubblicazione è in grado di catturare le modifiche dei dati in real-time, per renderle immediatamente disponibili a database o applicazioni.
Nell’era del cloud ha acquisito un’importanza crescente, per mantenere una connessione fra i database dei microservizi e le architetture degli eventi e del cloud native. Ecco come.
Cos’è il change data capture
Il change data capture è una funzione di runtime avanzata che consente di acquisire le modifiche ai dati in tempo reale. Opera per propagare i record modificati nelle sorgenti di dati all’interno di data warehouse ETL.
L’acquisizione delle modifiche ai dati rappresenta un approccio alla data integration. Consente di tenere sotto controllo le modifiche applicate ai dati. Inoltre, avvisa i sistemi e i servizi coinvolti dai cambiamenti. L’obiettivo è mantenere un elevato livello di coerenza e funzionalità in tutti i sistemi a base di dati.
Il modello di integrazione dai dati si basa sull’individuazione, cattura e delivery delle modifiche alle fonti di dati enterprise.
Perché il change data capture è importante
Il change data capture svolge una funzione importante perché è in grado di tagliare in maniera significativa l’esigenza di aggiornare il warehouse su vasta scala.
Inoltre, la possibilità di avere a disposizione informazioni aggiornate in tempo reale è cruciale per consentire il buon funzionamento di un’azienda. La tecnologia può abilitare processi di integrazione dei dati su scala aziendale in real-time. Permette di far propagare immediatamente le variazioni apportate nel database degli ordini dei prodotti nelle applicazioni relative a: fatturazione, transazioni, spedizione, ordini, giacenze, clienti eccetera.
Quando avviene l’aggiornamento di un ordine di acquisto, arriva un nuovo cliente o si riceve un pagamento, occorre allineare tutte le applicazioni aziendali. Devono ricevere la notifica della modifica, in modo tale da svolgere i processi in maniera corretta.
Metodologia
La Change data capture tiene sotto controllo le modifiche a livello di riga nelle tabelle di origine del database: classificate come eventi di inserimento, update ed eliminazione. Dunque, rende le variazioni disponibili seguendo l’ordine temporale: l’ordine con cui il database sorgente è stato modificato, e con cui le modifiche sono state apportate a tutti i sistemi e i servizi che si basano su quei dati.
Tale modalità di integrazione dei dati assicura che tutte le parti coinvolte da un definito set di dati siano informate delle modifiche in maniera accurata e possano operare di conseguenza, cambiando la propria versione dei dati o mettendo in moto i relativi processi aziendali.
Le attuali architetture basate su microservizi hanno regalato una nuova centralità alla CDC, grazie alla possibilità di connettere i classici database con le architetture cloud native e orientate agli eventi.
Con la change data capture, le aziende possono proseguire a usare i database esistenti, ma utilizzando le tecnologie emergenti per usare le informazioni in maniera più efficace. La CDC mette a punto modelli e schemi per i nuovi deployment, come il modello Outbox, per consentire ai microservizi di scambiare dati consolidati, iniziando da una transazione di database.
La modalità più efficace permette di acquisire le modifiche al database, considerando le variazioni come eventi. Inoltre recapita le notifiche di introdotta modifica ai sistemi e alle applicazioni interessate. Lo fa attraverso un servizio di messaggistica. Come nelle architetture guidate dagli eventi (EDA), spedisce le notifiche di avvenuta variazione in maniera asincrona.
Esempio: Apache Kakfa
La CDC riveste il ruolo di assicurare che gli eventi trasmessi da una piattaforma per il data streaming+ distribuita (come Apache Kakfa) riflettano le variazioni effettuate nel sistema o database sorgente. Invece Apache Kafka ovvero lo strumento per assicurare la comunicazione asincrona fra il database e i consumer dei dati consiste nel garantire la trasmissione accurata di tutte le variazioni. Lo fa grazie alla messaggistica asincrona che consente di separare gli eventi dai consumer. Apache Kafka consente di pubblicare, sottoscrivere, archiviare ed elaborare flussi di eventi in real-time. Permette anche di gestire i flussi di dati derivanti da più sorgenti e di indirizzare i dati a numerosi destinatari.
Fattori di confusione
I database relazionali sono per esempio Microsoft SQL Server, Oracle, mysql o Postgres. In questi casi, aggiornare il database sorgente comporta l’update di tutta una gamma di risorse correlate. Per esempio, aggiorna l’indice di ricerca o la cache.
L’approccio più immediato per aggiornare le risorse in contemporanea dovrebbe prevedere l’esecuzione dell’upgrade delle applicazioni.
Tuttavia, trascrivere coerentemente i dati modificati su più destinazioni introduce fattori di confusione. Infatti crea problematiche e difficoltà di coordinamento. La CDC invece permette di evitare la doppia scrittura. Consente anche di aggiornare le risorse in modo puntuale e simultaneo.