pgloader. Миграция данных в БД PostgreSQL
Версия: 3.6.9.
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты:
freetds
,sbcl
.Схема размещения: не используется.
Проект pgloader
является программным обеспечением с открытым исходным кодом. C ходом разработки можно ознакомиться по ссылке https://github.com/dimitri/pgloader.
Утилита представляет собой инструмент для переноса/миграции данных из MS SQL Server, MySQL, SQLite в базу данных PostgreSQL. Инструмент использует PostgreSQL-команду COPY для копирования данных из исходной базы данных или файла. Пример процесса миграция с MS SQL на Pangolin с помощью pgloader
представлен в одноименном подразделе документа «Руководство прикладного разработчика» раздела «Миграция на текущую версию».
Если в процессе эксплуатации автоматизированной системы принято решение о смене SQL-сервера, необходимо учитывать, что разные реализации SQL-серверов отличаются:
- диалектом;
- поддерживаемыми типами данных;
- процедурными языками;
- особенностями ввода в эксплуатацию.
Укрупненно процесс смены SQL-сервера (миграция) состоит из нескольких стадий, которые представлены в таблице:
Номер | Стадия | Ожидаемый результат |
---|---|---|
1. | Архитектурное планирование | Получены требования к сервису, DataFlow, метрикам SLA |
2. | Планирование схемы данных | Получены DDL-данных, с учетом диалекта целевого SQL-сервера (чаще в виде скрипта liquibase/flyway ) |
3. | Определение схемы данных: - подготовка DDL-таблиц; - индексирование и связывание таблиц. | На целевом SQL-сервере будет подготовлена схема данных, а также добавлены необходимые УЗ |
4. | Перенос данных | На целевой SQL-сервер будут перенесены данные с исходного SQL-сервера |
5. | Перенос кода (опционально) | На целевом SQL-сервере будут созданы: - хранимые процедуры; - триггеры; - регламентные процедуры, необходимые для функционирования АС |
6. | Опциональная валидация данных (контроль полноты перенесенных данных) | Получено подтверждение о полноте перенесенных данных |
Примечание:
В этой статье подробно рассматриваются 3 и 4 шаги. Особый акцент уделяется переносу данных.
Перенос данных в неиндексированную структуру и последующая индексация занимает меньше времени, чем перенос данных в индексированную структуру. Поэтому для уменьшения затрат на миграцию следует разделить шаг «Подготовка схемы данных» на два этапа:
- подготовка DDL-таблиц;
- индексирование и связывание таблиц.
Подготовка
Подготовка схемы в целевой БД
Перед началом работы необходимо создать на приемнике структуру схем, соответствующую источнику. Миграцию схем можно произвести с помощью liquibase
.
Миграция исходного кода T-SQL
Автоматизированного сценария переноса исходного кода БД функциональностью утилиты не предусмотрено. Для этого существуют сторонние инструменты, но в данной статье они не рассматриваются.
Доступ к базам данных
В процессе работы pgloader
создает объекты в целевой базе данных Pangolin и переносит в нее данные. Для работы инструмента необходимы права на создание и наполнение объектов. Рекомендуется выделить отдельную роль и наделить ее необходимыми правами, так как для базы данных источника необходим пользователь, который имеет доступ ко всем переносимым объектам.