Details
Title | Разработка сервиса для двусторонней миграции данных между приложениями, использующими СУБД MS Access и PostgreSQL: выпускная квалификационная работа бакалавра: направление 09.03.01 «Информатика и вычислительная техника» ; образовательная программа 09.03.01_01 «Разработка компьютерных систем» |
---|---|
Creators | Фролова Юлия Михайловна |
Scientific adviser | Лавров Алексей Александрович |
Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Imprint | Санкт-Петербург, 2025 |
Collection | Выпускные квалификационные работы ; Общая коллекция |
Subjects | база данных ; двустороння миграция данных ; сервис ; СУБД PostgreSQL ; Python ; ETL-процессы ; аудит базы данных ; database ; bidirectional data migration ; service ; PostgreSQL DBMS ; ETL processes ; database audit |
Document type | Bachelor graduation qualification work |
File type | |
Language | Russian |
Level of education | Bachelor |
Speciality code (FGOS) | 09.03.01 |
Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-3014 |
Rights | Доступ по паролю из сети Интернет (чтение, печать) |
Additionally | New arrival |
Record key | ru\spstu\vkr\37272 |
Record create date | 9/19/2025 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
Group | Anonymous |
---|---|
Network | Internet |
Целью работы является разработка сервиса, обеспечивающего двустороннюю миграцию бизнес-данных между базами данных компании ООО «Газпром ЦПС». В исходном варианте одна база данных расположена в СУБД MS Access, а другая база данных в СУБД PostgreSQL. В связи со сложностью поддержки и организации миграции данных между СУБД MS Access и СУБД PostgreSQL, было принято решение о переносе обеих баз данных в единый кластер СУБД PostgreSQL. Это повысило удобство сопровождения данных и снизило вероятность ошибок при синхронизации. В рамках данной работы были выполнены следующие задачи: 1. Совершён перенос баз данных в единый кластер PostgreSQL и выполнена единовременная синхронизация данных. 2. Разработан механизм автодокументации базы данных, на основе которого был построен маппер таблиц для сопоставления структур баз данных. 3. Реализованы ETL-скрипты для обеспечения двусторонней миграции на основе маппера таблиц. 4. Разработаны дополнительные модули – резервного копирования базы данных и логирования процесса работы сервиса. 5. Интегрирован Apache Airflow для оркестрации процесса миграции. Разработка сервиса осуществлялась с использованием языка программирования Python и SQL. В качестве основных инструментов были выбраны библиотеки SQLAlchemy для работы с базами данных и logging для организации системы логирования. Для отслеживания актуальных изменений данных в каждой базе данных была создана таблица аудита, которая заполнялась с помощью триггеров, установленных на целевые таблицы. В результате был разработан сервис, обеспечивающий синхронизацию данных между базами данных СУБД PostgreSQL.
The purpose of the work is to develop a service that provides two-way migration of business data between the databases of Gazprom CPS LLC. In the original version, one database is located in the MS Access database management system, and the other database is located in the PostgreSQL database management system. Due to the complexity of supporting and organizing data migration between MS Access and PostgreSQL databases, it was decided to migrate both databases to a single PostgreSQL database cluster. This improved the convenience of data maintenance and reduced the likelihood of synchronization errors. Within the framework of this work, the following tasks were performed: 1. Databases were migrated to a single PostgreSQL cluster and one-time data synchronization was performed. 2. A database auto-documentation mechanism has been developed, on the basis of which a table mapper was built for comparing database structures. 3. ETL scripts have been implemented to provide two-way migration based on the table mapper. 4. Additional modules have been developed – database backup and logging of the service operation process. 5. Apache Airflow is integrated to orchestrate the migration process. The service was developed using the Python and SQL programming languages. The SQLAlchemy libraries for working with databases and logging for organizing a logging system were chosen as the main tools. To track current data changes in each database, an audit table was created, which was filled in using triggers installed on the target tables. As a result, a service has been developed that provides data synchronization between PostgreSQL databases.
Network | User group | Action |
---|---|---|
ILC SPbPU Local Network | All |
|
Internet | Authorized users SPbPU |
|
Internet | Anonymous |
|
- СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
- ВВЕДЕНИЕ
- ГЛАВА 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
- 1.1. Описание предметной области
- 1.2. Обзор существующих проблем при миграции данных
- 1.3. Сравнение СУБД MS Access и СУБД PostgreSQL
- 1.4. Анализ существующих подходов аудита
- 1.5. Выбор инструментария
- 1.5.1. Python
- 1.5.2. Docker Desktop
- 1.5.3. Apache Airflow
- 1.5.4. PostgreSQL, psql и pgAdmin 4
- ГЛАВА 2. ПОДГОТОВКА ИСХОДНЫХ ДАННЫХ
- 2.1. Анализ структуры исходных баз данных
- 2.2. Перенос БД 1.0 из СУБД MS Access в СУБД PostgreSQL
- 2.2.1. Инструмент Database Migration Toolkit
- 2.2.2. Перенос дампа БД 1.0 в СУБД PostgreSQL
- 2.2.3. Проблемы, возникшие при экспорте БД
- 2.3. Перенос дампа БД 2.0 из контейнера на локальный сервер PostgreSQL
- ГЛАВА 3. МАППИНГ СХЕМ БАЗ ДАННЫХ
- 3.1. Разработка механизма автодокументирования базы данных
- 3.1.1. Автодокументирования БД 2.0
- 3.1.2. Автодокументирования БД 1.0
- 3.2. Построение маппера таблиц
- ГЛАВА 4. РАЗРАБОТКА СЕРВИСА ДЛЯ ДВУСТОРОННЕЙ МИГРАЦИИ ДАННЫХ
- 4.1. Разработка структуры сервиса
- 4.2. Настройка БД для работы сервиса миграции
- 4.2.1. Единоразовая синхронизация данных
- 4.2.2. Реализация механизма аудита
- 4.3. Разработка ETL-скрипта для двусторонней миграции данных
- 4.4. Разработка модуля для резервного копирования БД
- 4.5. Разработка модуля выгрузки логов
- 4.6. Интеграция Apache Airflow
- ГЛАВА 5. АНАЛИЗ ВОЗМОЖНЫХ КОЛЛИЗИЙ
- 5.1. Коллизии при одновременном добавлении записи
- 5.2. Несоответствие структуры таблиц
- 5.3. Нарушение внешних ключей
- 5.4. Непредвиденные случаи
- 5.1. Коллизии при одновременном добавлении записи
- ГЛАВА 6. ТЕСТИРОВАНИЕ РАЗРАБОТАННОГО СЕРВИСА
- 6.1. Создание искусственных данных
- 6.2. Запуск двусторонней миграции данных
- 6.3. Тестирование работы сервиса с Apache Airflow
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Приложение 1.
- Приложение 2.
- Приложение 3.
- Приложение 4.
- Приложение 5.
- Приложение 6.
- Приложение 7.
- Приложение 8.
Access count: 0
Last 30 days: 0