
Для многих, кто только начинает погружаться в мир аналитики данных, возникает вопрос: что такое CDC и почему оно так важно? В этой статье мы расскажем про то, что такое Change Data Capture, что она дает бизнесу, и как эта технология применяется в нашем ETL-продукте Экстрактор 1С.
Что такое Change Data Capture (CDC)?

Система отслеживания изменений данных – это технология, которая автоматически находит, фиксирует и передаёт все изменения в базе данных другим системам или процессам в реальном времени. Это помогает поддерживать актуальность и согласованность данных в разных системах.
Роль Change Data Capture в современных средах данных
Интеграция в реальном времениChange Data Capture (CDC) помогает обеспечить интеграцию данных в режиме реального времени. Благодаря потоковой передаче изменений из исходной базы данных (БД) в целевые системы по мере их возникновения CDC минимизирует задержки, обеспечивая постоянную доступность данных в режиме, близком к реальному времени, для критически важных приложений.
Снижение нагрузки на систему
Одним из наиболее убедительных преимуществ Change Data Capture (CDC) является его способность значительно снизить нагрузку на системы исходных данных. Традиционные процессы пакетного ETL создают значительную нагрузку на исходные системы, требуя запросов, которые часто сканируют целые таблицы. Это не только отнимает время, но и истощает системные ресурсы.
В отличие от них Change Data Capture (CDC) фокусируется исключительно на захвате новых или обновленных данных с момента последней контрольной точки, эффективно оптимизируя процесс захвата данных и не создавая дополнительной нагрузки на исходную базу данных. Это приводит к повышению общей производительности и снижению нагрузки на системные ресурсы.
Повышенная точность данныхЗахватывая изменения на уровне транзакций, Change Data Capture (CDC) помогает поддерживать согласованность данных, значительно снижая риск ошибок и несоответствий. Такая непрерывная синхронизация данных гарантирует, что все системы отражают наиболее актуальное состояние данных.
Целостность данных в разных системах
Change Data Capture (CDC) отслеживает все изменения в источниках данных, включая базы и хранилища, гарантируя, что они будут точно отражены в системах назначения.
Миграция и внедрение облачных технологий
Изначально Change Data Capture был популярен как альтернатива пакетной репликации данных для наполнения хранили, а теперь стал стандартным методом миграции в облако. Он позволяет осуществлять миграцию без простоя и помогает организациям поддерживать гибридные среды при переходе в облако.
Как работает Change Data Capture?
CDC постоянно отслеживает и фиксирует изменения в данных по мере их возникновения в БД, обеспечивая синхронизацию всех систем. Реализация Change Data Capture (CDC) может варьироваться в зависимости от конкретных требований приложения и желаемого баланса между оперативностью и производительностью системы. Ниже мы рассмотрим наиболее распространенные методы реализации.
Log-based CDC - один из самых эффективных методов отслеживания изменений в БД. Он использует журналы транзакций БД, в которых фиксируются все события и изменения, внесенные в данные. Читая эти журналы, инструменты CDC могут фиксировать их, включая вставки, обновления и удаления, не создавая дополнительной нагрузки на БД. Этот метод особенно выгоден благодаря низкому влиянию на производительность БД и способности фиксировать все типы изменений данных в режиме реального времени.
Однако важно отметить и сложности, например, необходимость в специализированных инструментах, способных читать и интерпретировать формат журналов различных БД. Кроме того, этот подход требует, чтобы ни одна транзакция не обходила журнал, а это требование, как правило, можно обеспечить с помощью настроек БД. При правильной настройке, мощный cdc инструмент может стать основой для высокопроизводительной аналитической системы.
Trigger-based CDC работает путем определения триггеров БД, которые автоматически выполняются в ответ на определенные события манипулирования данными, такие как операции INSERT, UPDATE или DELETE. Затем эти триггеры записывают изменения в отдельную таблицу или журнал, создавая поток изменений данных в реальном или близком к реальному времени. Этот метод позволяет детально отслеживать изменения на уровне строк и поддерживает захват всех типов модификаций данных.
К основным преимуществам Change Data Capture на основе триггеров относятся его гибкость и возможность всестороннего отслеживания изменений. Однако он может привести к увеличению производительности из-за дополнительной обработки, необходимой для каждого события. Кроме того, реализация Change Data Capture (CDC) на основе триггеров требует внесения изменений в схему базы данных, что может оказаться нецелесообразным во всех средах.
Time-based CDC - это метод, используемый для отслеживания и регистрации изменений в БД с помощью временных меток. При таком подходе фиксируется время последнего изменения, что позволяет эффективно идентифицировать новые, обновленные или удаленные записи. Change Data Capture (CDC) на основе временных меток облегчает репликацию и синхронизацию данных в режиме реального времени в нескольких системах, позволяя организациям поддерживать точную и актуальную информацию для своевременного принятия решений и бизнес-аналитики.
К минусам относится необходимость внешнего процесса с регулярными запросами, который замедляет базу данных, а также невозможность в простых реализациях получать события удаления строк.
Преимущества Change Data Capture для бизнеса

Технология CDC меняет методы управления и использования данных в бизнесе. Ниже перечислены некоторые из ключевых преимуществ, которые могут получить предприятия, внедрив технологию CDC.
Эффективность
Одним из главных преимуществ Change Data Capture (CDC) является ее роль в оптимизации процессов управления данными. Технология CDC обеспечивает обработку данных для аналитики в режиме реального времени, позволяя организациям извлекать выгоду из быстро меняющихся данных.
Захватывая инкрементные обновления с минимальным воздействием на источник и цель, Change Data Capture может считывать и потреблять изменения в режиме реального времени, непрерывно подпитывая аналитическую цель, не нарушая работу производственных баз данных. Такая эффективность жизненно важна для передачи больших объемов данных и поддерживает масштабирование операций.
Экономия затрат
Благодаря эффективному перемещению данных от источника к производственным серверам Change Data Capture (CDC) минимизирует совокупную стоимость владения. Она устраняет зависимость от высококвалифицированных пользователей этих приложений, позволяя инженерам и архитекторам по обработке данных сосредоточиться на более важных задачах.
Кроме того, подход CDC к инкрементной загрузке требует незначительной пропускной способности, что снижает стоимость передачи данных и экономит драгоценное время. Такой метод загрузки данных, в отличие от единовременной передачи, предотвращает передачу больших объемов данных, которые могут перегрузить пропускную способность сети, что приводит к дальнейшей экономии средств и времени.
Улучшенное принятие решений
Доступ к свежим и точным данным имеет первостепенное значение для принятия обоснованных бизнес-решений. Change Data Capture (CDC) предоставляет организациям данные практически в режиме реального времени, гарантируя, что анализ и последующие выводы или автоматизация основаны на самой актуальной информации. Такая возможность позволяет делать более точные прогнозы, улучшать качество обслуживания пользователей, повышать эффективность стратегического планирования и улучшать результаты бизнеса.
Благодаря Change Data Capture (CDC) компании могут быстрее реагировать на открывающиеся возможности и быстрее принимать более разумные решения, приносящие больший доход.
Как технология Change Data Capture реализована в инструменте Экстрактор 1С в BI?

В Экстракторе технология Change Data Capture реализована следующим образом:
- С помощью стандартной функции 1C - подписки на события, мы отслеживаем изменения только в объектах, которые вы включили в свои проекты. Так мы не тратим ресурсы на все остальное. Мы не следим за всеми остальными изменениями, таким образом сохраняя ресурсы системы.
- При регистрации изменения мы кладём инструкцию о необходимости выгрузки этого конкретного сегмента записей в очередь выгрузки, откладывая выгрузку до тех пор, пока данные не потребуются.
- При наступления момента расписания, Экстрактор контролирует выгрузку таким образом, чтобы одинаковые сегменты данных не перевыгружались несколько раз. Например, если у вас зарегистрированы к выгрузке все записи регистра за этот день, и в течение дня таких сегментов зарегистрировалось множество, то перед выгрузкой они будут свёрнуты по дню и выгружены единожды.
- Каждый сегмент выгружается отдельным потоком, повышая таким образом скорость выгрузки в десятки раз.
- Мы не выгружаем данные сразу в мастер-таблицу БД, сохраняя каждый сегмент сначала во временную таблицу, а затем сливая их фоново на стороне базы данных. Риск повредить целевую таблицу таким образом значительно снижается.
Хотите познакомиться с Экстрактором ближе? Записывайтесь на установку бесплатной демо-версии!