Администраторы баз данных и разработчики часто сталкиваются с ситуациями, когда необходимо данные из разных баз сравнивать и синхронизировать, либо просто перенести их в другую рабочую базу. В этом случае очень важно выбрать правильный инструмент, который поможет справиться с этой задачей быстро и эффективно. Для PostgreSQL на рынке существует несколько готовых инструментов, которые позволяют находить различия и выполнять синхронизацию данных. В этой статье проведем небольшой обзор особенностей этих инструментов, а именно продукты таких компаний как Devart, SQL Maestro Group, Navicat и Altova.
![image](https://habrastorage.org/getpro/habr/post_images/b15/473/5ce/b154735ce8b313512990be6609876966.png)
После установки, при первом запуске, все продукты требуют лицензионный ключ, но у всех так же есть и триальный период. У SQL Maestro Group и Navicat — 15 дней, а у dbForge и Altova — 30 дней. И, если во всех продуктах переход в период пробного использования происходит одним нажатием кнопки, то Altova предлагает воспользоваться их автоматическим сервисом для получения ключей на каждый продукт. После чего на почту приходит список ключей по запрошенным продуктам с датой окончания их действия.
Каждый продукт довольно сильно отличается друг от друга по интерфейсу и функционалу. Поэтому, приведем краткий обзор приложений по первым впечатлениям:
- PostgreSQL DataSync — приложение сразу же запускает мастер сравнения двух баз, тем самым указывая, что данное приложение предназначено лишь для сравнения данных и ничего более. Так же в мастере есть клавиша Generate command line…, которая позволяет сохранить сценарий для последующего использования при автоматизации процессов.
- dbForge Data Compare for PostgreSQL — после запуска приложения открывается окно Start Page, в котором может быть список предыдущих проектов. Так же, судя по панели инструментов, можно вызвать не только мастер синхронизации данных, но и обычное окно SQL документа для работы со скриптами со стандартным набором инструментов, а так же вариант запуска больших скриптов напрямую из файла. Для работы по синхронизации данных так же открывается мастер New Data Comparison для ввода соединений и названий баз данных. Так же в мастере есть кнопка Save Command Line…, позволяющая сохранять сценарии сравнения для дальнейшего использования.
- Navicat for PostgreSQL – после запуска открывается студия с набором инструментов для работы с базами. Т.е. предлагается не только вариант синхронизации данных, но и синхронизация схем и объектов. Для сравнения данных так же запускается мастер Data Synchronization, в котором предлагается выбрать два соединения с базами и почему-то только по одной схеме от каждой базы. Таким образом, для сравнения нескольких схем нужно запускать синхронизацию для каждой схемы отдельно.
- Altova DatabaseSpy – после запуска открывается приложение, в котором из выпадающего меню есть возможность выбрать варианты сравнения файлов, директорий, данных и т.д. Соседство таких приложений в одном списке немного смутило, а попытка провести простейшее сравнение двух баз не привела ни к какому удовлетворительному результату из-за довольно своеобразного интерфейса. Поэтому, к сожалению, из дальнейшего сравнения это приложение мы исключили.
При сравнении простых данных все три приложения показали себя довольно хорошо, выделялся только Navicat со своим сравнением по каждой схеме отдельно. dbForge порадовал возможностью вводить дополнительные пользовательские скрипты для каждой пары сравнения.
При работе со сложными данными уже появились отличия. При синхронизации данных с конвертации типов все приложения выводят предупреждение о возможной потере данных. Но, по крайней мере, на наших тестовых данных, после проведения синхронизации DataSync и Navicat продолжают показывать, что данные в таблицах не равны, но в скрипт синхронизации ничего не выводят. После синхронизации приложением dbForge при последующем сравнении само приложение указывает, что данные в обоих базах равны и дополнительной синхронизации не требуется. DataSync и Navicat подтвердили, что после синхронизации приложением dbForge Data Compare for PostgreSQL все данные равны.
Все приложения поддерживают PostgreSQL до версии 9.6 включительно. Navicat еще позволяет работать с базами на Amazon, а dbForge поддерживает еще и Azure.
При сравнении приложений стоит обратить внимание и на их цены. В таблицу также добавлены инструменты, которые мы не включили в обзор.
Продукт |
Ссылка |
Компания |
Цена |
dbForge Data Compare for PostgreSQL |
https://www.devart.com/dbforge/postgresql/datacompare/ |
Devart |
$99.95 |
PostgreSQL Data Sync |
http://www.sqlmaestro.com/products/postgresql/datasync/ |
SQL Maestro |
$99 |
EMS Data Comparer for PostgreSQL |
http://www.sqlmanager.net/products/postgresql/datacomparer |
SQL Manager |
$110 |
Table Data Comparison And Synchronization Tool |
http://www.dbsolo.com/datacomp.html |
DB Solo |
$129 |
DatabaseSpy 2017 |
http://www.altova.com/databasespy.html |
Altova |
Enterprise $189 Professional $129 |
Datanamic DataDiff for PostgreSQL |
http://datanamic.com/datadiff-for-postgresql/index.html |
Datanamic |
Standard $199 |
Navicat for PostgreSQL (for Windows) |
https://www.navicat.com/en/products/navicat-for-postgresql |
Navicat |
Enterprise $299 Standard $199 |
Aqua Data Studio |
http://www.aquafold.com/aquadatastudio/schema_sql_compare.html |
AquaFold |
Standard $499 |
Цены указаны за одного пользователя с 1 годом поддержки.
Подводя итоги, можно сказать, что каждый инструмент имеет как преимущества, так и недостатки. Какой инструмент выбрать, зависит от ваших предпочтений. На основании всех вышеперечисленных критериев, был выбран dbForge Data Compare for PostgreSQL, который «на отлично» справляется с поставленными целями, имея при этом невысокую стоимость.