PostgreSQL и DirectumRX. Основные сведения о PostgreSQL
Андрей Ардашев, архитектор облачных решений
Введение
В DirectumRX, начиная с версии 2.7, появилась поддержка СУБД PostgreSQL. Читатели, которые до сих пор не знакомы с PostgreSQL, могут ознакомиться с данной СУБД по статьям Википедии. Для знакомства пользователей с возможностями PostgreSQL начинаем серию статьей, посвященной особенностям использования, настройки и администрирования PostgreSQL.
Использование PostgreSQL позволяет решить следующие задачи:
- сокращение затрат на ПО, т.к. эта СУБД относится к свободному ПО, в перспективе появится возможность переносить PostgreSQL на серверы с развернутыми *NIX-совместимыми операционными системами, что позволит создавать недорогие отказоустойчивые решения (об этом подробнее поговорим в следующих статьях);
- движение к импортозамещению, некоторые решения на базе PostgreSQL входят в реестр российского ПО.
Немного о разработчиках PostgreSQL
PostgreSQL развивается силами международной группы разработчиков (PGDG), в которую входят как непосредственно программисты, так и те, кто отвечают за продвижение PostgreSQL (Public Relation), за поддержание серверов и сервисов, написание и перевод документации. Всего на 2005 год насчитывается около 200 человек. Другими словами, PGDG — это сложившийся коллектив, который полностью самодостаточен и устойчив. Проект развивается по общепринятой среди открытых проектов схеме, когда приоритеты определяются реальными нуждами и возможностями. При этом, практикуется публичное обсуждение всех вопросов в списке рассылке, что практически исключает возможность неправильных и несогласованных решений.
Кроме PGDG, значительное участие в развитии PostgreSQL принимает некоммерческая организация «The PostgreSQL Foundation», созданная для продвижения и поддержки PostgreSQL. Сайт фонда находится по адресу www.thepostgresqlfoundation.org. Спонсорская помощь на развитие PostgreSQL поступает как от частных лиц, так и от коммерческих компаний, которые:
- принимают на работу членов PGDG;
- оплачивают разработку каких-либо новых возможностей;
- предоставляют услуги в виде хостинга или оплаты трафика;
- поддерживают публичные мероприятия PGDG.
Бесплатно? Почему?
Как видим, в разработке и развитии PostgreSQL участвует большое количество различных организаций, а для поддержания большого штата разработчиков требуется приток инвестиций. Как им удается зарабатывать на бесплатном продукте?
Приведем несколько примеров:
- многочисленные дорогостоящие курсы, которые помогают специалистам быстро освоить работу с PostgreSQL (ссылки приводить не будем, их найти просто);
- многие компании-разработчики включают PostgreSQL в свои платные продукты, чтобы снизить их порог вхождения в инфраструктуру заказчиков, и, конечно же, поддерживают развитие СУБД (www.tadviser.ru/index.php/Продукт:PostgreSQL_(PostgresPro));
- предоставление облачных сервисов PostgreSQL (azure.microsoft.com/ru-ru/services/postgresql).
В итоге приток инвестиций от заинтересованных компаний-разработчиков, специалистов, которые получают образование, регулярно «подпитывает» сообщество PGDG.
Сравнение PostgreSQL с Microsoft SQL Server
Выполним сравнение по ряду параметров: доступность, функциональность и удобство, переносимость.
Доступность
PostgreSQL бесплатен, однако MS SQL Server также имеет бесплатную редакцию Express, которая в ряде случаев допустима, а для небольших организаций рекомендуема. Стоимость MS SQL Server также не является непосильной для крупных организаций.
В итоге, PostgreSQL имеет максимальную доступность, MS SQL Server выше средней. К СУБД с низкой доступностью можно отнести СУБД Oracle, которая является более специализированной и ее могут позволить себе не все организации.
Функциональность и удобство
Согласно статьи в Wikipedia, PostgreSQL по функциональности мало чем отличается от MS SQL Server , но обладает рядом преимуществ и недостатков с точки зрения удобства разработки и администрирования.
Преимущества PostgreSQL:
- развитый SQL язык, удобство разработки и компактность кода (возможность использовать регулярные выражения, множество логических команд, более простой способ создания и использования функций, больше типов данных, есть возможность работать с массивами);
- возможность запуска PostgreSQL на множестве ОС: Windows, Linux и прочих *NIX, BSD, MacOS;
- удобство администрирования: развитый инструмент командной строки, что позволяет заскриптовать необходимые процедуры и автоматизировать процесс администрирования; логи хранятся в одном месте в удобном для обработки виде, в MSSQL логи хранятся в разных местах, и в последствии сложно реализовать из автоматический анализ;
- множество бесплатных расширений, которые расширяют возможности PostgreSQL.
Контраргументы:
- в компаниях, ориентированных на ПО Microsoft, больше специалистов по MS SQL Server и Postgres для них чуждый продукт;
- инструменты настройки и поддержки MS SQL Server >значительно удобнее инструментов Postgres;
- PostgreSQL в настоящее время не имеет средств валидации файлов резервных копий, поэтому для корректной проверки резервных копий необходимо разворачивать дополнительный тестовый контур, где БД будут регулярно восстанавливаться и специалист (либо автомат) будет проверять работоспособность и актуальной резервной копии;
- в инструментарии PostgreSQL отсутствует удобный профайлер для анализа быстродействия. Необходимо либо вручную обрабатывать логи, либо использовать сторонние инструменты, которые упрощают данный процесс, в том числе Postgres Pro имеет ряд улучшений в платных версиях.
Переносимость на различные платформы
И PostgreSQL и MS SQL Server доступны для развёртывания на платформах Windows и Linux.
Требования MS SQL Server для развертывания на Linux представлены в статье https://docs.microsoft.com/ru-ru/sql/linux/sql-server-linux-setup#system
Ресурсоемкость
В PostgreSQL есть следующие ограничения по объемам:
Метрика |
PostgreSQL |
MSSQL |
Максимальный размер базы данных |
Нет заявленных ограничений |
524 272 Тбайт |
Максимальный размер таблицы |
32 Тбайт |
16 Тбайт |
Максимальный размер записи |
1,6 Тбайт |
1 Тбайт |
Максимум полей в записи |
250–1600, в зависимости от типов полей |
1024 — 30 000, в зависимости от типов полей |
Максимум индексов в таблице |
Нет ограничений |
Нет ограничений |
Исходные данные, по которым собиралась информация:
- для PostgreSQL wiki.postgresql.org/wiki/Часто_Задаваемые_Вопросы
- для MS SQL Server docs.microsoft.com/ru-ru/sql/sql-server/maximum-capacity-specifications-for-sql-server
Как видим, отличия наблюдаются в количестве полей в таблицах, PostgreSQL позволяет создавать таблицы максимум с 1600 полей. Необходимо это учитывать при разработке таблиц БД.
Когда стоит обратить внимание на PostgreSQL при использовании в связке с DirectumRX?
Исходя из представленной выше информации можно сделать вывод, что по функциональным возможностям и ограничениям, а иногда и по стоимости владения, PostgreSQL практически не отличается от MS SQL Server, однако использование PostgreSQL предполагает наличие ИТ-специалистов, знакомых с ОС Linux и с принципами работы сервисных служб на ОС Linux.
Рассмотрим несколько кейсов, когда и какую СУБД лучше использовать для DirectumRX:
Количество пользователей |
Наличие штатных ИТ-специалистов |
Наличие инфраструктуры на базе Linux-серверов |
Наилучший выбор |
До 25 |
нет |
нет |
MS SQL Server редакция Express на ОС Windows |
До 25 |
да |
нет |
MS SQL Server редакция Express на ОС Windows или PostgreSQL на ОС Windows |
До 25 |
нет |
да |
MS SQL Server редакция Express на ОС Windows |
До 25 |
да |
да |
PostgreSQL на ОС Windows или ОС Linux |
От 25 |
нет |
нет |
MS SQL Server на ОС Windows |
От 25 |
да |
нет |
MS SQL Server на ОС Windows |
От 25 |
нет |
да |
PostgreSQL на ОС Windows или OC Linux |
От 25 |
да |
да |
PostgreSQL на ОС Windows или OC Linux |
Приведенные данные являются рекомендуемыми, исходя из опыта взаимодействия с пользователями DirectumRX. Однако, в случае если Ваша компания готова использовать PostgreSQL для работы с DirectumRX, рекомендуем провести пробную тестовую эксплуатацию PostgreSQL, только после чего пробовать применять в продуктивной среде.
В следующей статье рассмотрим инструментарий PostgreSQL.
Источник: DIRECTUM Club