УДК 004

Создание отечественного CDC решения для работы с событийными данными для СУБД PostgreSQL

Хайруллина Камиля Ильдусовна – студентка Казанского (Приволжского) федерального университета

Якупов Азат Шавкатович – старший преподаватель Казанского (Приволжского) федерального университета

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

Ключевые слова: информационные технологии, событийные данные, сбор измененных данных, базы данных, PostgreSQL, ETL процессы.

В настоящее время в России наблюдается нестабильная ситуация на рынке информационных технологий. Многие зарубежные компании в области информационных технологий, такие как Adobe, Alphabet, Amazon, AMD, Apple, Cisco, Dell Technologies, Ericsson, GitLab, IBM, Intel, JetBrains, Microsoft, Oracle, Red Hat, SAP, TeamViewer, VMware и другие, приостановили или прекратили свою деятельность в России. Это создает препятствия не только для приобретения программных и аппаратных продуктов этих компаний российскими пользователями, но и для обновления и получения технической поддержки ранее приобретенных продуктов. Такое положение дел является серьезным стимулом для перехода на отечественные аналоги [1].

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

Важным направлением является развитие отечественных IT-продуктов. Российские разработчики работают над созданием собственных программных продуктов в различных областях, начиная от CRM-систем и заканчивая системами управления предприятием.

Таким образом, российским компаниям необходимо искать альтернативные решения в области IT, стремиться к разработке собственных продуктов.
Статистика роста объемов данных, которые требуют обработки, показывает, что в последние годы они резко возросли. Согласно исследованию, объемы данных удваиваются примерно каждые два года [2].

В 2018 году объемы данных в мире составляли около 33 зеттабайт. К 2025 году их ожидается уже более 175 зеттабайт, примерно в пять раз больше.[3] Это связано с ростом числа подключенных к интернету устройств, таких как смартфоны, домашние устройства интернета вещей, а также с ростом количества информации, которую мы создаем и храним в облаке, на компьютерах, мобильных устройствах и других цифровых устройствах.

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

Одним из инструментов работы с поступившими данными являются сервисы сбора событийных данных (CDC решения).

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

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

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

В настоящий момент на рынке представлено несколько CDC инструментов, однако они имеют некоторые недостатки.

Сейчас самым популярным решением на рынке является Debezium. Debezium – это инструмент для изменения потока данных из баз данных, который основан на Apache Kafka. Он позволяет непрерывно отслеживать изменения в базе данных и передавать их в Kafka, где они могут быть обработаны другими приложениями.

Некоторые особенности Debezium:

  • поддержка различных баз данных, включая MySQL, PostgreSQL, MongoDB и другие;
  • использование логического чтения журнала транзакций для получения изменений в базе данных без блокировки таблиц;
  • поддержка различных форматов сериализации, таких как Avro, JSON и Protobuf;
  • возможность задать точку входа для чтения изменений (например, начальную позицию в журнале транзакций);
  • масштабируемость и отказоустойчивость благодаря использованию Kafka [4].

Но к сожалению Debezium не может обеспечить изменение настроек подключения на лету, что затрудняет работу и требует создания нового подключения. Также для обеспечения получения данных в нескольких форматах требует установку плагинов wal2json, decoderbufs и avro.[4,5]
На основе вышесказанного нами был разработан инструмент, обладающий следующими свойствами [6]:

  • дает возможность отслеживания измененных данных в СУБД PostgreSQL;
  • поддерживает отправку разных типов данных (JSON, Avro, Protobuf), при наличии только одного установленного плагина (wal2json);
  • имеет открытый исходный код;
  • является отечественным;
  • является расширяемым.

Таким образом, в настоящее время существует потребность в инструменте для сбора событийных данных из СУБД PostgreSQL, способного переподключаться при изменении данных для подключения и требующего минимальные установки для получения данных в разных форматах. Авторами статьи такой инструмент был разработан.

Список литературы

  1. Импортозамещение IT в России: цифровая трансформация казначейства //БАНКОВСКОЕ ОБОЗРЕНИЕ. – 2022. [Электронный ресурс]. – Режим доступа: https://bosfera.ru/bo/importozameshchenie-it-v-rossii-cifrovaya-transformaciya-kaznacheystva
  2. Gantz J., Reinsel D. The digital universe in 2020: Big data, bigger digital shadows, and biggest growth in the far east //IDC iView: IDC Analyze the future. – 2012. – Т. 2007. – №. 2012. – С. 1-16.
  3. Rydning D. R. J. G. J., Reinsel J., Gantz J. The digitization of the world from edge to core //Framingham: International Data Corporation. – 2018. – Т. 16.
  4. Статья “Особенности проекта Debezium для решения задачи миграции баз данных” [Электронный ресурс]. – Режим доступа: https://habr.com/ru/company/lanit/blog/654259/
  5. Статья про возможности “Debezium” [Электронный ресурс]. – Режим доступа: https://debezium.io/documentation/reference/1.1/features.html
  6. Hkamilya/postgres-cdc // GitHub. – URL: https://github.com/HKamilya/postgres-cdc.

Интересная статья? Поделись ей с другими: