«Для версии 9.0 были разработаны функции, которые облегчают миграцию с проприетарных СУБД на Postgres», — сказал Брюс Момджан, главный разработчик этого проекта с открытым кодом. Одновременно он является старшим архитектором систем баз данных в компании EnterpriseDB, которая предлагает версию этой СУБД с поддержкой на коммерческой основе.
«Основное внимание мы уделяем простоте использования, простоте администрирования и предложению таких возможностей, которые, по нашему мнению, нужны именно большим организациям, — пояснил он. — То, что делают сейчас многочисленные разработчики — это, в сущности, наведение глянца на СУБД, так чтобы она выглядела массовым продуктом, а не аляповатой штуковиной, которой могут пользоваться только адепты Open Source».
Из реляционных СУБД с открытым кодом, используемых достаточно широко, более всего на слуху MySQL, хотя менее известная PostgresSQL, которую многие знают также как Postgres, представляется вполне зрелым продуктом.
Компания EnterpriseDB рекламирует свой вариант этой СУБД как недорогую альтернативу проприетарным решениям, например СУБД Oracle, а также как альтернативу MySQL, особенно после того, как контроль за последней также перешел к Oracle и клиенты вполне могут пожелать диверсифицировать свои технологии управления базами данных.
«Postgres используется все шире. Многие пользователи Oracle, MySQL или IBM DB2 за последние полгода стали нашими клиентами», — сказал Момджан.
Так, компания Netezza использует EnterpriseDB Postgres Plus Advanced Server в качестве платформы для своего нового продукта Netezza Migrator. Это программный интерфейс для SQL-запросов к специализированному серверу хранилищ данных Netezza TwinFin.
Postgres 9.0 представляет собой значительную модернизацию предыдущей версии 8.4, выпущенной в июле прошлого года. В июне разработчикам была предоставлена вторая бета-версия 9.0, а официальный релиз ожидается в середине августа.
В версии 9.0 реализованы несколько новых функций, которые должны заинтересовать крупных корпоративных пользователей. Наиболее важной из этих функций станет внутреннее тиражирование. (В общем случае тиражирование представляет собой создание копии базы данных, чаще всего на сервере, физически удаленном от основного сервера.) В предыдущей версии Postgres уже было реализовано «внешнее тиражирование», как назвал его Момджан, которое заключалось в том, что внешняя по отношению к базе данных программа копировала протокол транзакций к базе данных в другое место через заранее определенные интервалы. В протоколе транзакций фиксировались все изменения, вносимые в базу.
Этот подход оказался слишком медленным и громоздким. Новая версия поддерживает «потоковое тиражирование» — как только производится какая-либо запись в оригинальную базу данных, программное обеспечение тиражирвания воспроизводит эти изменения и в копии. Таким образом, изменения в резервную базу вносятся чаще и она оказывается максимально актуальной. Кроме того, при таком подходе можно делать запросы к этой базе, чего не допускал прежний подход.
Еще одним существенным новшеством станет инструментарий Pg_migrator, упрощающий для ИТ-администраторов модернизацию баз данных Postgres до новой версии. Перенос предыдущих версий, особенно для больших баз, представлял собой, по признанию Момджана, болезненный процесс. Фактически требовалось переносить все содержимое базы в новую файловую структуру.
В новой версии данные остаются на месте и меняется только структура таблицы. Этот процесс занимает несколько минут, даже для баз, хранящих терабайты данных. «400-гигабайтную базу данных можно перенести за 40 секунд», — отметил Момджан.
Помимо этих основных изменений, разработчики значительно пересмотрели возможности Postgres в целом, что вполне оправдывает переход к новому порядковому номеру версии. Расширена поддержка хранимых процедур, что позволяет исполнять новые типы процедур. Претерпел существенные изменения и компилятор Perl.
Большинство этих небольших изменений должны стимулировать использование СУБД на предприятиях. Так, например, управление доступом, то есть инструмент, позволящий задавать права доступа определенных пользователей к определенным частям базы данных, был капитально переработан.
Кроме того, ИТ-администраторы теперь могут видеть, какие приложения делают запросы к базе. «Когда приложение обращается к базе данных, оно сообщает свое название, — пояснил Момджан, — и отображается на консоли администратора, где он просматривает все запросы».