CDC
Change Data Capture
CDC (Change Data Capture) è una tecnica per intercettare le modifiche ai dati (INSERT, UPDATE, DELETE) nel momento in cui avvengono e propagarle verso altri sistemi in tempo reale o quasi reale. A differenza degli approcci batch tradizionali (ETL periodici), il CDC cattura i cambiamenti in modo continuo e incrementale.
Come funziona #
L’approccio più diffuso è il log-based CDC: un componente esterno legge i log delle transazioni del database (binary log in MySQL, WAL in PostgreSQL, redo log in Oracle) e converte gli eventi in un flusso di dati consumabile da altri sistemi. Strumenti come Debezium, Maxwell e Canal implementano questo approccio per MySQL leggendo direttamente i binary log.
A cosa serve #
Il CDC è usato per:
- Sincronizzare dati tra database diversi in tempo reale
- Alimentare data warehouse e data lake con aggiornamenti incrementali
- Popolare cache e indici di ricerca (Elasticsearch, Redis)
- Implementare architetture event-driven e microservizi
Quando si usa #
Il CDC richiede che il binary log sia attivo e in formato ROW (che registra le modifiche riga per riga). Disabilitare i binary log o usare il formato STATEMENT elimina la possibilità di utilizzare strumenti di CDC, rendendo impossibile l’integrazione in tempo reale con sistemi esterni.