Обзор инструментов для сравнения данных в PostgreSQL

    Администраторы баз данных и разработчики часто сталкиваются с ситуациями, когда необходимо данные из разных баз сравнивать и синхронизировать, либо просто перенести их в другую рабочую базу. В этом случае очень важно выбрать правильный инструмент, который поможет справиться с этой задачей быстро и эффективно. Для PostgreSQL на рынке существует несколько готовых инструментов, которые позволяют находить различия и выполнять синхронизацию данных. В этой статье проведем небольшой обзор особенностей этих инструментов, а именно продукты таких компаний как Devart, SQL Maestro Group, Navicat и Altova.


    image

    После установки, при первом запуске, все продукты требуют лицензионный ключ, но у всех так же есть и триальный период. У SQL Maestro Group и Navicat — 15 дней, а у dbForge и Altova — 30 дней. И, если во всех продуктах переход в период пробного использования происходит одним нажатием кнопки, то Altova предлагает воспользоваться их автоматическим сервисом для получения ключей на каждый продукт. После чего на почту приходит список ключей по запрошенным продуктам с датой окончания их действия.


    Каждый продукт довольно сильно отличается друг от друга по интерфейсу и функционалу. Поэтому, приведем краткий обзор приложений по первым впечатлениям:


    1. PostgreSQL DataSync — приложение сразу же запускает мастер сравнения двух баз, тем самым указывая, что данное приложение предназначено лишь для сравнения данных и ничего более. Так же в мастере есть клавиша Generate command line…, которая позволяет сохранить сценарий для последующего использования при автоматизации процессов.
    2. dbForge Data Compare for PostgreSQL — после запуска приложения открывается окно Start Page, в котором может быть список предыдущих проектов. Так же, судя по панели инструментов, можно вызвать не только мастер синхронизации данных, но и обычное окно SQL документа для работы со скриптами со стандартным набором инструментов, а так же вариант запуска больших скриптов напрямую из файла. Для работы по синхронизации данных так же открывается мастер New Data Comparison для ввода соединений и названий баз данных. Так же в мастере есть кнопка Save Command Line…, позволяющая сохранять сценарии сравнения для дальнейшего использования.
    3. Navicat for PostgreSQL – после запуска открывается студия с набором инструментов для работы с базами. Т.е. предлагается не только вариант синхронизации данных, но и синхронизация схем и объектов. Для сравнения данных так же запускается мастер Data Synchronization, в котором предлагается выбрать два соединения с базами и почему-то только по одной схеме от каждой базы. Таким образом, для сравнения нескольких схем нужно запускать синхронизацию для каждой схемы отдельно.
    4. 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, который «на отлично» справляется с поставленными целями, имея при этом невысокую стоимость.


    image

    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 7
    • +1
      В DataGrip тоже есть Diff. Для физ.лиц 89$ в год( второй 71, третий 53 )
      • 0
        А что делать, если надо проверить результат перекачки таблиц из PG в Oraclle или MSSQL, например?
      • 0
        Летом была стажерская программа в QIWI и силами одного из школьников написали на Node.js утилитку, сравнивающую данные и схемы в бд. Сейчас используем для сравнения горы справочников перед релизами. Удобно, например, что умеет сравнивать данные без учета автоинкрементной колонки.
        Возможно, кому-нибудь пригодится: https://github.com/qiwi/pg_comparator
        • 0
          а liquibase никто не пробовал?
          • 0
            я при помощи этой штуки смог сэмулировать работу sqlpackage.exe применительно к postgres (деплой с идеологией «выстрелил-и-забыл»)
          • 0
            Спасибо за наводку — поддержим отечественного производителя… хотя мне больше другие продукты от Devart по душе

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.