CDC (Change Data Capture, захват изменений данных) – подход к интеграции, при котором отслеживаются изменения в базе данных-источнике и передаются потребителям: хранилищу данных, поисковому индексу, другим сервисам. В отличие от периодической полной выгрузки, передаются только изменения и с малой задержкой.
Способы реализации
- Чтение журнала транзакций СУБД (WAL в PostgreSQL, redo-логи, binlog в MySQL) – наименьшая нагрузка на источник.
- Триггеры, записывающие изменения в отдельные таблицы.
- Сравнение по временным меткам или версиям строк.
Типичная архитектура
Коннектор читает журнал изменений и публикует события в брокер сообщений (например, Apache Kafka), откуда их получают хранилище, микросервисы и потоковые обработчики. Распространённый инструмент с открытым кодом – Debezium.
Где применяется
- Актуализация хранилищ и озёр данных в близком к реальному времени.
- Синхронизация микросервисов и кешей.
- Миграция данных между СУБД без длительной остановки.