Microsoft SQL Server и PostgreSQL — это широко распространенные системы управления базами данных, обладающие богатым набором инструментов администрирования и программных API. Однако MS SQL имеет довольно ограничительную политику лицензирования и высокую совокупную стоимость владения, в то время как PostgreSQL поставляется с менее ограничительной лицензией и имеет открытый исходный код. По этим причинам многие компании и организации рассматривают возможность переноса базы данных с SQL Server на PostgreSQL.
Обычно миграция базы данных организуется в соответствии с методом извлечения-преобразования-загрузки и состоит из следующих шагов:
Извлечение определений таблиц с соответствующими индексами и ограничениями из исходной базы данных в форме инструкций SQL CREATE
Преобразуйте эти инструкции в целевой формат и загрузите в целевую базу данных
Экспорт данных из исходной базы данных в промежуточное хранилище (например, csv-файлы)
Преобразуйте данные в соответствии с целевым форматом и загрузите их в целевую базу данных
Извлечение представлений, хранимых процедур и триггеров из базы данных SQL Server в виде инструкций SQL и исходного кода
Преобразуйте эти инструкции и исходный код в целевой формат и загрузите в целевую базу данных
Рассмотренный выше подход доказывает, что перенос базы данных MS SQL на PostgreSQL требует больших усилий при выполнении этого вручную. Более того, это приводит к высокому риску потери или повреждения данных из-за человеческого фактора. Было бы разумно использовать специальное программное обеспечение для автоматизации процесса преобразования.
Один из таких инструментов для автоматизации миграции базы данных с SQL Server на PostgreSQL был разработан Intelligent Converters, поставщиком программного обеспечения, специализирующимся на решениях для преобразования, миграции и синхронизации баз данных с 2001 года. Конвертер обладает чрезвычайно высокой производительностью за счет прямого чтения и записи данных без каких-либо библиотек промежуточного программного обеспечения или компонентов. Он поддерживает все версии SQL Server и PostgreSQL, включая платформы SAAS. Инструмент миграции поддерживает версию командной строки для целей автоматизации. Конвертер SQL Server в PostgreSQL позволяет не только переносить данные с SQL Server в новую базу данных, но также объединять или синхронизировать их с существующей базой данных PostgreSQL.
Когда целью является перенос только определенных записей, инструмент позволяет фильтровать данные с помощью запросов SELECT. Эта опция позволяет выбирать отдельные столбцы, записи и даже предварительно обрабатывать данные перед преобразованием их в формат PostgreSQL. s
Иногда требуется изменить тип или имя столбца в целевой таблице. Для этой цели конвертер SQL Server в PostgreSQL предоставляет функцию, называемую “пользовательское сопоставление столбцов”. Это диалоговое окно, предназначенное для изменения атрибутов любого столбца преобразованной таблицы и исключения определенных столбцов из преобразования.
Если целевой сервер PostgreSQL не разрешает удаленное подключение или это платформа SAAS с ограниченным доступом, программа может экспортировать данные в SQL script. С помощью этой опции база данных SQL Server преобразуется в локальный SQL-скрипт, содержащий инструкции для создания таблиц, индексов и ограничений и вставки данных. Позже этот файл скрипта можно импортировать в базу данных PostgreSQL с помощью любых стандартных клиентских инструментов.