05.06.24
В эпоху больших данных скорость и точность обработки информации становятся решающими факторами успеха для бизнеса. С постоянно растущим объемом информации компаниям необходимо не просто ее уметь хранить, но и быстро реагировать на изменения. В этом контексте технология Change Data Capture (CDC) выступает как ключевой инструмент, позволяющий повысить эффективность бизнес-процессов. 

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

Что такое сбор данных об изменениях (CDC)?

Быстрые отчеты из 1С с помощью AI интеграция Easy Report BI и Экстрактора данных из 1С.png

Система отслеживания измененных данных (CDC) - это техника, включающая в себя процесс обнаружения, захвата и передачи изменений, внесенных в данные в базе данных, в последующие процессы или системы в режиме реального времени. Эта возможность является основополагающей для поддержания согласованности и целостности данных в различных системах.

Роль CDC в современных средах данных


Интеграция данных в реальном времени

CDC помогает обеспечить интеграцию данных в режиме реального времени. Благодаря потоковой передаче изменений из исходной базы данных (БД) в целевые системы по мере их возникновения CDC минимизирует задержки, обеспечивая постоянную доступность данных в режиме, близком к реальному времени, для критически важных приложений.

Снижение нагрузки на систему

Одним из наиболее убедительных преимуществ CDC является его способность значительно снизить нагрузку на системы исходных данных. Традиционные процессы пакетного ETL создают значительную нагрузку на исходные системы, требуя запросов, которые часто сканируют целые таблицы. Это не только отнимает время, но и истощает системные ресурсы. В отличие от них CDC фокусируется исключительно на захвате новых или обновленных данных с момента последней контрольной точки, эффективно оптимизируя процесс захвата данных и не создавая дополнительной нагрузки на исходную базу данных. Это приводит к повышению общей производительности и снижению нагрузки на системные ресурсы.

Повышенная точность данных

Захватывая изменения на уровне транзакций, CDC помогает поддерживать согласованность данных, значительно снижая риск ошибок и несоответствий. Такая непрерывная синхронизация данных гарантирует, что все системы отражают наиболее актуальное состояние данных.

Целостность данных в разных системах

CDC отслеживает все изменения в источниках данных, включая базы и хранилища, гарантируя, что эти изменения будут точно отражены в системах назначения. 

Миграция и внедрение облачных технологий

Изначально CDC был популярен как альтернатива пакетной репликации данных для наполнения хранили, а теперь стал стандартным методом миграции в облако. Он позволяет осуществлять миграцию без простоя и помогает организациям поддерживать гибридные среды при переходе в облако.

Как работает захват данных об изменениях


CDC работает, постоянно отслеживая и фиксируя изменения в данных по мере их возникновения в базе данных, обеспечивая синхронизацию всех систем. Реализация CDC может варьироваться в зависимости от конкретных требований приложения и желаемого баланса между оперативностью и производительностью системы. Ниже мы рассмотрим наиболее распространенные методы реализации CDC.

CDC.png



Log-based CDC - один из самых эффективных методов отслеживания изменений в БД. Он использует журналы транзакций БД, в которых фиксируются все события и изменения, внесенные в данные. Читая эти журналы, инструменты CDC могут фиксировать изменения, включая вставки, обновления и удаления, не создавая дополнительной нагрузки на БД. Этот метод особенно выгоден благодаря низкому влиянию на производительность БД и способности фиксировать все типы изменений данных в режиме реального времени.

Однако важно отметить и сложности, например, необходимость в специализированных инструментах, способных читать и интерпретировать формат журналов различных БД. Кроме того, этот подход требует, чтобы ни одна транзакция не обходила журнал, а это требование, как правило, можно обеспечить с помощью настроек БД.

Trigger-based CDC работает путем определения триггеров БД, которые автоматически выполняются в ответ на определенные события манипулирования данными, такие как операции INSERT, UPDATE или DELETE. Затем эти триггеры записывают изменения в отдельную таблицу или журнал, создавая поток изменений данных в реальном или близком к реальному времени. Этот метод позволяет детально отслеживать изменения на уровне строк и поддерживает захват всех типов модификаций данных.

К основным преимуществам CDC на основе триггеров относятся его гибкость и возможность всестороннего отслеживания изменений. Однако он может привести к увеличению производительности из-за дополнительной обработки, необходимой для каждого события изменения данных. Кроме того, реализация CDC на основе триггеров требует внесения изменений в схему базы данных, что может оказаться нецелесообразным во всех средах.

Time-based CDC - это метод, используемый для отслеживания и регистрации изменений в БД с помощью временных меток. При таком подходе фиксируется время последнего изменения данных, что позволяет эффективно идентифицировать новые, обновленные или удаленные записи. CDC на основе временных меток облегчает репликацию и синхронизацию данных в режиме реального времени в нескольких системах, позволяя организациям поддерживать точную и актуальную информацию для своевременного принятия решений и бизнес-аналитики. 

К минусам относится  необходимость внешнего процесса с регулярными запросами, который замедляет базу данных, а также невозможность в простых реализациях получать события удаления строк.

Преимущества захвата данных об изменениях для бизнеса 


CDC2.jpg
Технология захвата данных об изменениях (CDC) меняет методы управления и использования данных в бизнесе. Ниже перечислены некоторые из ключевых преимуществ, которые могут получить предприятия, внедрив технологию CDC.

Эффективность

Одним из главных преимуществ CDC является ее роль в оптимизации процессов управления данными. Технология CDC обеспечивает обработку данных для аналитики в режиме реального времени, позволяя организациям извлекать выгоду из быстро меняющихся данных. Захватывая инкрементные обновления с минимальным воздействием на источник и цель, CDC может считывать и потреблять изменения в режиме реального времени, непрерывно подпитывая аналитическую цель, не нарушая работу производственных баз данных. Такая эффективность жизненно важна для передачи больших объемов данных и поддерживает масштабирование операций.

Экономия затрат

Благодаря эффективному перемещению данных от источника к производственным серверам CDC минимизирует совокупную стоимость владения. Она устраняет зависимость от высококвалифицированных пользователей этих приложений, позволяя инженерам и архитекторам по обработке данных сосредоточиться на более важных задачах. Кроме того, подход CDC к инкрементной загрузке требует незначительной пропускной способности, что снижает стоимость передачи данных и экономит драгоценное время. Такой метод загрузки данных, в отличие от единовременной передачи, предотвращает передачу больших объемов данных, которые могут перегрузить пропускную способность сети, что приводит к дальнейшей экономии средств и времени.

Улучшенное принятие решений

Доступ к свежим и точным данным имеет первостепенное значение для принятия обоснованных бизнес-решений. CDC предоставляет организациям данные практически в режиме реального времени, гарантируя, что анализ и последующие выводы или автоматизация основаны на самой актуальной информации. Такая возможность позволяет делать более точные прогнозы, улучшать качество обслуживания пользователей, повышать эффективность стратегического планирования и улучшать результаты бизнеса. Благодаря CDC компании могут быстрее реагировать на открывающиеся возможности и быстрее принимать более разумные решения, приносящие больший доход.

Как технология CDC реализована в инструменте Экстрактор 1С в BI?

CDC3

В Экстракторе технология отслеживания изменений реализована следующим образом:

  • С помощью стандартной функции 1C - подписки на события, мы отслеживаем изменения только в объектах, которые вы включили в свои проекты. Так мы не тратим ресурсы на все остальное.  Мы не следим за всеми остальными изменениями,  таким образом сохраняя ресурсы системы.
  • При регистрации изменения мы кладём инструкцию о необходимости выгрузки этого конкретного сегмента записей в очередь выгрузки, откладывая выгрузку до тех пор, пока данные не потребуются.
  • При наступления момента расписания, Экстрактор контролирует выгрузку таким образом, чтобы одинаковые сегменты данных не перевыгружались несколько раз. Например, если у вас зарегистрированы к выгрузке все записи регистра за этот день, и в течение дня таких сегментов зарегистрировалось множество, то перед выгрузкой они будут свёрнуты по дню и выгружены единожды.
  • Каждый сегмент выгружается отдельным потоком, повышая таким образом скорость выгрузки в десятки раз.
  • Мы не выгружаем данные сразу в мастер-таблицу базы данных, сохраняя каждый сегмент сначала во временную таблицу, а затем сливая их фоново на стороне базы данных. Риск повредить целевую таблицу таким образом значительно снижается.


Система отслеживания изменений в Экстракторе сочетает в себе комбинацию trigger - based и data-based технологий, достигая максимального эффекта. Сочетание возможностей ETL с решением CDC позволяет отслеживать и регистрировать каждое изменение, внесенное в платформу. Если в источнике появился новый столбец, вы можете добавить его в процессе ETL. Если какой-либо из существующих столбцов изменился, он будет соответствующим образом обновлен во время следующего запуска.

Хотите познакомиться с Экстрактором ближе? Записывайтесь на установку бесплатной демо-версии!


Наши менеджеры ответят на все вопросы, произведут расчет стоимости услуг и подготовят коммерческое предложение!
Заказать проект

Это интересно