Che cos'è Change Data Capture?

Change data capture, definito

Il change data capture (CDC, acquisizione delle modifiche dei dati) è una tecnica per rilevare e acquisire le modifiche apportate ai dati in un database e trasmetterle ai sistemi a valle. Il CDC consente la sincronizzazione, la replica e l'elaborazione guidata dagli eventi quasi in tempo reale o in tempo reale tra i sistemi dopo che si verificano modifiche al database.

Il change data capture è un metodo di integrazione dei dati in tempo reale che combina e armonizza i dati che potrebbero altrimenti rimanere isolati o incoerenti in tutta l'organizzazione. Altri metodi di integrazione dei dati includono l'integrazione di flussi di dati, la virtualizzazione dei dati e l'integrazione delle applicazioni.

La capacità del CDC di mantenere aggiornati processi e sistemi a valle quasi in tempo reale o in tempo reale con bassa latenza è fondamentale per il successo dell'analytics dei dati in tempo reale, delle migrazioni cloud e dei modelli di intelligenza artificiale (IA). Supporta una serie di casi d'uso in diversi settori, tra cui il rilevamento delle frodi, la gestione della supply chain e la conformità normativa in settori come retail, finanza e sanità.

Esistono diversi approcci al change data capture, con CDC basato sui log, CDC basato sul timestamp e CDC basato su trigger tra i più comuni. Le aziende possono implementare il change data capture tramite strumenti nativi per database, piattaforme open source e soluzioni di terze parti.

Qual è il vantaggio del Change Data Capture?

Nella moderna gestione dei dati, il change data capture è emerso come un meccanismo critico di ingegneria dei dati. I moderni ambienti di dati aziendali sono sempre più grandi e complessi. Possono contenere dati provenienti da dispositivi Internet of Things (IoT), database distribuiti, applicazioni e altre fonti diverse. Mantenere dati coerenti e di qualità in questo ecosistema di dati in crescita è una sfida continua.

Allo stesso tempo, il business richiede informazioni accurate e aggiornate che possano essere utilizzate per il processo decisionale in tempo reale. Il Change Data Capture è uno dei vari metodi che aiutano le organizzazioni a soddisfare questa domanda.

Il change data capture consente una pipeline dei dati a bassa latenza che fornisce dati aggiornati in un modo più efficiente e meno dispendioso in termini di risorse rispetto ad altri metodi di integrazione dei dati. Ad esempio, la data replication comporta la copia di set di dati completi. Al contrario, il CDC invia solo i dati che sono stati modificati, riducendo così il carico sui sistemi di origine, il traffico di rete e la richiesta di potenza di calcolo.

In questo modo, li aiuta ad accedere alle informazioni più recenti e accurate in modo rapido ed efficiente, con diversi vantaggi tra cui:

  • Processi decisionali più rapidi
  • Migrazioni senza tempi di inattività
  • Miglioramento del processo ETL
  • Prestazioni AI migliorate

Processi decisionali più rapidi

Il CDC aiuta le organizzazioni a convogliare i dati operativi in piattaforme di analytics dei dati e dashboard in tempo reale, per ottenere rapporti più accurati e aggiornati, insight aziendali e processi decisionali. Con queste funzionalità, le aziende possono supportare le esigenze dei moderni ambienti aziendali sensibili al fattore tempo, 24 ore su 24, 7 giorni su 7.

Migrazioni senza tempi di inattività

La sincronizzazione continua tra fonti di dati e sistemi di destinazione supporta la migrazione dei dati tra database, ambienti cloud o applicazioni con tempi di inattività o interruzioni minimi. Ad esempio, durante le migrazioni cloud, il CDC trasferisce rapidamente le modifiche dei dati che si verificano on-premise alle tabelle di dati basate su cloud pertinenti, garantendo la coerenza tra i due ambienti.

Miglioramento del processo ETL

Le pipeline di dati ETL (estrazione, trasformazione, caricamento) sono parte integrante dell'analisi dei dati e dei flussi di lavoro di machine learning. Tuttavia, l'esecuzione ETL, che si basa sull'elaborazione in batch, tende ad essere molto lenta e a pesare sulle risorse del sistema. L'integrazione del CDC in ETL ottimizza l'uso delle risorse e accelera lo spostamento dei dati.

Migliori prestazioni di intelligenza artificiale (AI)

Implementare il Change Data Capture aiuta a garantire che i dati di origine del modello siano aggiornati, in modo che i modelli linguistici di grandi dimensioni (LLM) possano fornire output accurati e tempestivi. Ad esempio, nei casi d'uso della retrieval-augmented generation (RAG), i modelli AI si connettono con basi di conoscenza esterne per risposte più pertinenti.

AI Academy

È la gestione dei dati il segreto dell’AI generativa?

Scopri perché i dati di alta qualità sono fondamentali per un uso efficace dell'AI generativa.

Come funziona l'acquisizione dei dati di modifica?

Il change data capture individua e registra inserimenti, aggiornamenti ed eliminazioni che avvengono nei sistemi di dati sorgente. Queste fonti possono includere database relazionali come Oracle Database, PostgreSQL, MySQL, Microsoft SQL Server e Azure SQL Database, e database non relazionali (NoSQL) come Apache Cassandra e MongoDB.

I moderni sistemi CDC utilizzano comunemente CDC basati su registri, in cui gli strumenti leggono i registri delle transazioni del database (file che registrano le modifiche dei dati in un database) per individuare le modifiche. Ogni evento di cambiamento all'interno di un registro di transazione è associato a una posizione logaritmica ordinata, come un numero di sequenza logaritmica (LSN). Questi aiutano i sistemi CDC a determinare esattamente quando avvengono le modifiche.

Dopo l'acquisizione delle modifiche, queste vengono trasmesse in tempo reale o quasi in tempo reale ai sistemi a valle, come i data lake, i data warehouse, le piattaforme di streaming di dati come Apache Kafka, i motori di elaborazione dei flussi come Apache Spark e le pipeline ETL/ELT.

Approcci CDC: push rispetto a pull

Il change data capture può essere avviato sia dal sistema sorgente (approccio basato su push) sia dal sistema di destinazione (approccio basato su pull). La differenza fondamentale consiste nel sistema responsabile dell'acquisizione e della trasmissione dei cambiamenti.

CDC basato su push

In un modello CDC basato su push, il sistema sorgente rileva le modifiche e le "invia" immediatamente ai sistemi di destinazione. Questo approccio viene comunemente implementato utilizzando registri delle transazioni di database, event streams o broker di messaggi come Kafka.

Poiché le modifiche vengono inviate man mano che si verificano, il CDC basato su push generalmente supporta casi d'uso che richiedono un movimento dati in tempo reale o quasi in tempo reale, come streaming analytics, architetture orientate a eventi e sistemi di AI/Apprendimento automatico (ML).

CDC basato su pull

Nel CDC basato sul modello pull, il sistema di destinazione interroga regolarmente i sistemi sorgente e "scarica" le modifiche quando vengono rilevate. Il polling può avvenire secondo una pianificazione fissa e questo rende il CDC basato su pull adatto per workload orientati ai batch o sistemi che non richiedono aggiornamenti immediati.

Sebbene questo approccio sia più semplice e richieda un'infrastruttura meno complessa rispetto al CDC basato su push, può introdurre una latenza superiore e aumentare i carichi di query sui database di origine, incidendo sulle prestazioni. Molte piattaforme dati moderne supportano entrambi gli approcci a seconda delle esigenze dati e delle esigenze operative.

Metodi comuni di Change Data Capture

Esistono diversi metodi per eseguire il Change Data Capture. I tipi di CDC più comuni includono: 

  • CDC basato su log
  • CDC basato su timestamp
  • CDC basato su trigger

CDC basato su log

I log delle transazioni del database sono una caratteristica standard dei database e vengono utilizzati per registrarne tutte le transazioni (i file di registro delle transazioni possono essere utilizzati per ripristinare i database in caso di guasto del sistema).

Nel CDC basato su log, un'applicazione CDC elabora le modifiche al database (sia ai dati sia ai metadati) acquisite nel registro e condivide gli aggiornamenti con altri sistemi. Il CDC basato su log è diventato sempre più popolare grazie alla sua efficienza: si basa sui log invece che sulle query, che possono imporre carichi sostanziali ai sistemi sorgente. Tuttavia, la variazione dei formati dei log delle transazioni può complicare l'esecuzione di CDC basato su log in database diversi.

CDC basato su timestamp

Il Change Data Capture basato sul timestamp, noto anche come CDC basato su query, richiede che gli schemi delle tabelle del database presentino caratteristiche come colonne con timestamp, che annotano la data e l'ora delle modifiche ai record. Uno strumento CDC può essere utilizzato per identificare i record modificati tramite la colonna timestamp in una tabella di origine, per poi fornire aggiornamenti ai sistemi di destinazione.

Sebbene il CDC basato su timestamp possa essere semplice da implementare, può anche imporre ulteriori carichi invasivi su un sistema quando il polling dei dati di timestamp avviene frequentemente. Il CDC basato su timestamp non riesce inoltre ad acquisire le operazioni di eliminazione quando il timestamp viene eliminato insieme al resto di una riga.

CDC basato su trigger

Nel Change Data Capture basato su trigger, le procedure o le funzioni memorizzate note come trigger del database vengono eseguite quando si verificano modifiche specifiche (come inserimenti, eliminazioni e aggiornamenti) in un database. I dati modificati vengono quindi memorizzati in quella che viene spesso chiamata tabella delle modifiche o tabella shadow.

Come nel caso del CDC basato sul timestamp, il CDC basato su trigger può essere semplice da implementare. Tuttavia, può anche pesare sui sistemi di origine perché i trigger vengono "attivati" ogni volta che si verifica una transazione nella tabella di origine.

Origini e destinazioni CDC comuni

Per aiutare a tracciare un quadro completo del CDC, esaminiamo alcune fonti e destinazioni CDC comuni.

Le fonti CDC sono i sistemi da cui provengono i dati, come ad esempio:

Le destinazioni CDC sono i sistemi verso cui i dati vengono trasmessi o replicati, ad esempio:

  • Piattaforme di data streaming (Apache Kafka, Amazon Kinesis, Google cloud Pub/Sub)

  • Data warehouse e lakehouse (Snowflake, Amazon Redshift, Google BigQuery)

  • Cloud object storage (AWS S3, Azure Blob Storage, Google Cloud Storage)

Normalmente collegare sorgenti e destinazioni richiede strumenti CDC, connettori e piattaforme di integrazione dati.

ETL a confronto con CDC: principali fattori di differenziazione

L'ETL (estrazione, trasformazione, caricamento) e il change data capture sono entrambi approcci di integrazione dei dati ampiamente utilizzati, ma progettati per scopi diversi.

Di seguito sono riportate alcune delle principali differenze tra ETL e CDC:

  • Movimento dei dati: normalmente le pipeline ETL inseriscono interi set di dati o grandi lotti di dati. Il CDC acquisisce e trasmette solo le modifiche.

  • Velocità di elaborazione e latenza: l'ETL è normalmente orientato a batch a intervalli programmati. Il CDC è progettato per il movimento dati a bassa latenza e la sincronizzazione continua.

  • Casi d'uso principali: spesso l'ETL è utilizzato per business intelligence, reportistica cronologica e machine learning. Il CDC è comunemente utilizzato per real-time analytics, rilevamento delle frodi e architetture guidate da eventi.

  • Trasformazione dei dati: le pipeline ETL puliscono e trasformano i dati prima del caricamento. I sistemi CDC individuano e replicano semplicemente i cambiamenti senza ulteriori elaborazioni.

  • Impatto sul sistema: i processi ETL tradizionali mettono a dura prova i sistemi di origine con workload in batch ripetuti. Il CDC riduce al minimo i costi trasmettendo solo i cambiamenti.

Le organizzazioni di oggi utilizzano comunemente sia ETL che CDC, spesso insieme. Ad esempio, il CDC integra le pipeline ETL trasmettendo aggiornamenti incrementali dopo il caricamento iniziale dei dati. Questo permette ai set di dati di rimanere aggiornati in tempo reale man mano che avvengono cambiamenti dei sistemi sorgente, senza dover attendere l'esecuzione del job ETL successivo.

SCD a confronto con CDC: in cosa differiscono l'uno dall'altro?

Il CDC e le dimensioni a variazione lenta (SCD - Slowly Changing Dimensions) lavorano insieme per mantenere i sistemi target accurati e aggiornati.

Mentre il CDC acquisisce e trasmette le modifiche dai sistemi sorgente, gli SCD definiscono come tali modifiche vengono gestite e memorizzate all'interno di tabelle dimensionali in un data warehouse.

(In questo contesto, i dati delle dimensioni si riferiscono in genere a tabelle delle dimensioni nei data warehouse che memorizzano attributi descrittivi come gli indirizzi dei clienti o i numeri di telefono.)

Esistono due tipi comuni di SCD: Tipo 1 e Tipo 2.

SCD di Tipo 1: sovrascrive i dati già presenti in una tabella delle dimensioni con nuovi dati, senza conservare la cronologia

SCD di Tipo 2: aggiunge una nuova riga a una tabella delle dimensioni, preservando le modifiche cronologiche complete nel tempo

Strumenti di Change Data Capture

Gli strumenti di change data capture (CDC) acquisiscono e trasmettono le modifiche del database in tempo reale, aiutando le organizzazioni a supportare l'integrazione moderna dei dati, le analytics e le architetture guidate dagli eventi.

Le funzionalità CDC possono essere native di ambienti di database specifici, come AWS Database Migration Service (DMS), o possono essere implementate in modo più ampio. Le soluzioni CDC comuni includono strumenti open source come Debezium e piattaforme commerciali come IBM® StreamSets e Oracle GoldenGate.

Molte organizzazioni utilizzano Apache Kafka come base per le pipeline CDC. Le architetture CDC basate su Kafka possono acquisire le modifiche del database, trasmetterle in streaming tramite gli argomenti Kafka e distribuirle ad applicazioni downstream, data warehouse, piattaforme di analytics e sistemi AI.

Quando valutano gli strumenti CDC, le organizzazioni spesso considerano:

  • Scalabilità
  • Prezzi
  • Latenza
  • Supporto per connettori
  • Integrazione di Kafka
  • Affidabilità
  • Flessibilità d'implementazione
  • Supporto API

Casi d'uso del Change Data Capture

Le aziende possono distribuire il Change Data Capture per una varietà di usi, tra cui:

Rilevazione di frodi

Il monitoraggio continuo delle modifiche apportate ai documenti finanziari tramite Change Data Capture consente il rilevamento di attività fraudolente prima che causino perdite significative.

Abilitazione dell'Internet of Things (IoT)

Il CDC può integrare in modo efficiente le enormi quantità di dati in tempo reale generati dai dispositivi IoT, consentendo la manutenzione predittiva e il monitoraggio in tempo reale.

Gestione dell'inventario e della supply chain

L'accesso a informazioni in tempo reale su vendite, inventario e supply chain supportate dal Change Data Capture aiuta le aziende a evitare l'esaurimento delle scorte e a prendere decisioni redditizie su prezzi.

Conformità normativa

Il Change Data Capture aiuta le aziende altamente regolamentate a tenere registri accurati necessari per la rendicontazione e la conformità a normative e leggi come il GDPR, il Sarbanes-Oxley (SOX) Act e l'HIPAA negli Stati Uniti.

Autori

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Soluzioni correlate
IBM StreamSets

Crea e gestisci pipeline di dati intelligenti in streaming attraverso un'interfaccia grafica intuitiva, che facilita la perfetta integrazione dei dati in ambienti ibridi e multicloud.

Esplora StreamSets
IBM watsonx.data™

Watsonx.data ti consente di scalare analytics e AI con tutti i tuoi dati, ovunque risiedano, attraverso uno storage dei dati aperto, ibrido e governato.

Scopri watsonx.data
Servizi di consulenza per dati e analytics

Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.

Esplora i servizi di analytics
Fai il passo successivo

Progetta una strategia dati che elimini i silo, riduca la complessità e migliori la qualità dei dati per esperienze eccezionali di clienti e dipendenti.

  1. Esplora le soluzioni di gestione dei dati
  2. Scopri watsonx.data