☀Объяснение:
Проблема
Периодический SELECT из большой OLTP-базы создаёт нагрузку и не обеспечивает задержку 5 секунд. Триггеры замедляют транзакции прямо в продовой системе.
Решение – CDC
Change Data Capture читает журнал транзакций (WAL в PostgreSQL, binlog в MySQL) и отправляет изменения (INSERT, UPDATE, DELETE) в Kafka. Потребитель (например, коннектор к ClickHouse) воспроизводит их в DWH с задержкой миллисекунды.
Преимущества
Минимальная нагрузка на исходную БД (читается уже сформированный лог).
Гарантированный порядок и сохранность (можно воспроизвести с любого смещения).
Не требует изменений в таблицах (ни триггеров, ни флагов).
Почему не другие варианты
A – высокий load, не даст 5 секунд.
C – триггеры замедляют вставку/обновление.
D – прямое чтение из OLTP убивает производительность аналитики.
Реальный пример
В крупном ритейлере CDC + Kafka синхронизирует 5000 изменений/сек с задержкой 1 секунда.
Требования аналитика
Использовать логическую репликацию или инструмент типа Debezium.
Обеспечить идемпотентность в целевой системе.
Post #11912
385