Postgres Pro — российская СУБД на основе PostgresSQL

В современном мире обработка и хранение данных стали важнейшей частью бизнес-процессов, и выбор системы управления базами данных (СУБД) играет решающую роль в обеспечении эффективной работы информационных систем. В данной статье мы представляем вам углубленный обзор выдающейся СУБД, получившей признание как на российском, так и на мировом рынке — Postgres Pro.

Postgres Pro, разработанная компанией Postgres Professional, представляет собой мощную и надежную систему управления данными, основанную на открытом исходном коде PostgreSQL. Она обладает широким спектром функциональных возможностей, что делает ее востребованным решением как для масштабных корпоративных проектов, так и для небольших приложений. В данной статье мы рассмотрим ключевые характеристики и особенности Postgres Pro, позволяющие ей успешно соперничать с мировыми лидерами в области СУБД и оставаться в числе предпочтительных выборов для российских заказчиков.

Postgres Pro - российская СУБД на основе PostgresSQL

Общие сведения

Postgres Professional — это российская компания, специализирующаяся на разработке системы управления базами данных (СУБД) Postgres Pro, основанной на базе PostgreSQL. СУБД включена в Единый реестр российского программного обеспечения и доступна в четырех вариантах: Postgres Pro Standard, Postgres Pro Enterprise, а также их сертифицированные версии, соответствующие требованиям Федеральной службы по техническому и экспортному контролю (ФСТЭК).

Команда разработчиков объединяет в себе ведущих российских программистов Postgres, что позволяет компании успешно решать разнообразные задачи, включая разработку новых функциональных возможностей, обеспечение безопасности и предоставление полного цикла поддержки. Этот цикл включает в себя аудит, помощь в миграции, круглосуточную техническую поддержку с гарантированным уровнем обслуживания (SLA), обучение, индивидуальную разработку решений и сертификацию специалистов.

Эта СУБД пользуется большой популярностью в России как альтернатива импортным СУБД, особенно среди крупнейших федеральных и частных компаний, включая объекты критической инфраструктуры, где обеспечение безопасности информации имеет первостепенное значение.

Postgres Professional также занимает второе место в мировом рейтинге вкладчиков в проект открытой СУБД PostgreSQL и является одной из крупнейших команд, активно участвующих в развитии этого проекта.

История разработки

Десять или пятнадцать лет назад большинство разработчиков выбирали популярную СУБД MySQL для своих бэкенд-проектов, несмотря на её множество проблем — частые сбои в кластерах и репликациях, медленные операции с индексами и проблемы с кодировкой текста в таблицах. Разработчики сталкивались с этими проблемами, но продолжали использовать MySQL из-за ее широкой популярности, хорошей документации и простой установки.

В то время PostgreSQL уже существовала и предоставляла более высокое качество работы по сравнению с MySQL. Однако она была менее популярной среди сообщества программистов, требовала более внимательного изучения документации, и поэтому не получила такого широкого признания.

С течением времени ситуация изменилась, и PostgreSQL заслужила признание. Эта бесплатная СУБД с открытым исходным кодом стала известной своей надежностью и гибкостью. Вокруг неё сформировалось активное сообщество инженеров, которые рекомендовали PostgreSQL для своих проектов. Теперь она известна как мощное решение для профессиональных разработчиков и продолжает прочно удерживать свою популярность.

Как появилась Postgres Pro

Популярность PostgreSQL в России привела к появлению собственной версии этой СУБД под названием Postgres Pro от успешной и инновационной российской компании. Это было вполне естественным шагом, учитывая, что исходный код PostgreSQL является открытым и доступным для использования в соответствии с лицензией на свободное ПО.

В сообществе разработчиков open source часто бывает долгим и медленным процессом внесения изменений и предложений в основной код проекта. В таких случаях создание собственной версии на базе общедоступного кода может быть более эффективным способом достижения желаемых целей.

Кроме того, разные страны имеют свои собственные юридические требования к использованию программного обеспечения в своих системах, и Россия не исключение. Поэтому создание местной версии СУБД на основе открытого кода позволяет учесть и соблюсти эти требования.

Postgres Pro - российская СУБД на основе PostgresSQL

Примером успешного подхода к созданию собственных версий СУБД можно привести компанию Percona, основанную российскими разработчиками в Соединенных Штатах. Percona достигла значительного успеха, предоставляя дополнительные решения для различных СУБД, включая MySQL. Её продукты решали различные задачи, такие как резервное копирование данных, репликация и управление MySQL.

В результате, существует подтверждение тому, что создание собственных версий СУБД на основе открытого кода является вполне разумной и успешной инициативой, особенно в контексте российской компании Postgres Pro, которая строит свои проекты на аналогичных принципах.

Основные возможности

Основные возможности Postgres Pro:

  • Надежность и устойчивость. Надежность Postgres Pro опирается на доказанную надежность PostgreSQL. PostgreSQL успешно работает на множестве проектов без сбоев и при высоких нагрузках на протяжении многих лет.
  • Конкурентная работа при большой нагрузке. Эта СУБД использует многоверсионность (MVCC), что обеспечивает надежную и быструю работу даже в условиях соревновательной нагрузки.
  • Масштабируемость. Архитектура эта СУБД оптимизирована для многоядерных процессоров, и его производительность линейно растет до 64 ядер. Кластерные решения, основанные на Postgres Pro, обеспечивают горизонтальное масштабирование.
  • Кроссплатформенность. Postgres Pro поддерживает различные операционные системы, включая Linux и MS Windows.
  • Расширяемость. Эта СУБД предоставляет возможность добавлять новую функциональность, включая новые типы данных, без остановки сервера и собственными силами.
  • Превосходная поддержка. Поддержка Postgres Pro осуществляется компанией Postgres Professional. Он также имеет высокий уровень соответствия стандартам ANSI SQL 92, ANSI SQL 99 и ANSI SQL 2003, 2011.

Технические детали

Технические характеристики Postgres Pro:

  • Многообразие интерфейсов. Postgres Pro обеспечивает широкий выбор интерфейсов для разработчиков, включая Tcl, Perl, C, C++, PHP, Json, ODBC, JDBC, Embedded SQL in C, Python, Ruby, Java и другие.
  • Интеграция с защитой данных ОС. Он интегрируется с операционной системой для обеспечения защиты данных, такой как SE-Linux.
  • Расширенные возможности SQL. Поддерживаются различные расширения SQL, такие как представления (materialized views), последовательности (sequences), наследование (inheritance), внешние соединения (outer joins), подзапросы (subselects), целостность ссылок (referential integrity), оконные функции (window functions) и общие таблицы выражений (CTE).
  • Продвинутый планировщик запросов. Postgres Pro обладает продвинутым планировщиком запросов, что позволяет оптимизировать выполнение сложных запросов.
  • Поддержка пользовательских функций и процедур. Возможность создания пользовательских функций, процедур и триггеров для настройки базы данных.
  • Процедурные языки. Поддерживаются различные процедурные языки, такие как pl/PgSQL, pl/Perl, pl/Python, pl/V8, pl/Java и другие.
  • Расширяемые типы данных. Postgres Pro предоставляет расширенный набор типов данных с возможностью создания индексов, включая GiST, GIN, SP-GiST.
  • Полнотекстовый поиск. Встроенная гибкая система полнотекстового поиска поддерживает русский и европейские языки.
  • Поддержка NoSQL. Поддержка слабо-структурированных данных, таких как XML, JSON, JSONB.
  • Горячее резервирование и репликация. Поддержка горячего резервирования и различных видов репликации (синхронной, асинхронной, каскадной), а также точечного восстановления (PITR).
  • Полная поддержка ACID и сериализации транзакций. Обеспечивает высокий уровень надежности и целостности данных.
  • Функциональные и частичные индексы. Поддержка создания индексов как для определенных функций, так и для части данных.
  • Интернационализация. Поддержка Unicode и локализации для работы с разными языками и регионами.
  • Загружаемые расширения. Возможность добавления расширений для дополнительных функциональных возможностей, таких как нечеткий поиск с использованием триграмм и эффективная обработка массивов.
  • Поддержка SSL и Kerberos Аутентификации. Обеспечивает безопасную передачу данных и аутентификацию.
  • Foreign Data Wrappers. Поддержка записываемых Foreign Data Wrappers для интеграции с различными типами баз данных.

Эти технические детали делают эту СУБД мощной и гибкой системой управления базами данных для разнообразных приложений и сценариев использования.

Виды и модификации

В этом разделе мы рассмотрим только две основные модификации Standard и Enterprise. Однако они и составляют основной пользовательский пул этой СУБД, а отличия с другими модификациями ограничиваются лишь специфическими особенностями для конкретных сценариев использования.

Postgres Pro Standard

Postgres Pro Standard — это самая актуальная версия PostgreSQL с внесенными дополнительными изменениями и расширениями. В этот дистрибутив также включены некоторые расширения и изменения, разработанные в компании Postgres Professional.

На данный момент версия Standard имеет следующие отличия от стандартной PostgreSQL:

  • Улучшение производительности на многоядерных системах, включая оптимизацию буфер-менеджера и механизмов блокировки.
  • Усовершенствования в полнотекстовом поиске, включая поиск фраз, морфологию hunspell и поддержку различных морфологических словарей. Дистрибутив также включает модуль shared_ispell для хранения словарей в разделяемой памяти.
  • Покрывающие индексы, что улучшает производительность запросов.
  • Поддержка библиотеки libicu на всех платформах, обеспечивая независимость от платформы при сортировке данных.
  • Модуль pg_trgm для нечеткого сравнения строк и поиска подстрок.
  • Улучшенный модуль pageinspect, который предоставляет доступ к внутренним структурам хранения данных.
  • Модуль sr_plan для сохранения и восстановления планов запросов.
  • Модуль dump_stat для сохранения статистики данных при резервном копировании и восстановлении.
  • Модуль jsquery для эффективного поиска в структурированных данных JSONB с использованием индексов.
  • Модуль pg_variables содержащий функции для работы с переменными различных типов.
  • Модуль pg_pathman, предоставляющий оптимизированный механизм секционирования и функции для создания и управления секциями.
  • Модуль pg_query_state, позволяющий узнавать текущее состояние выполнения запросов в работающем обслуживающем процессе.
  • pg_probackup — менеджер резервного копирования и восстановления.
  • Модуль mchar, добавляющий дополнительный тип данных для совместимости с Microsoft SQL Server.
  • Модуль fulleq, предоставляющий дополнительный оператор равенства для совместимости с Microsoft SQL Server.
  • Модуль fasttrun, который предоставляет транзакционно-небезопасную функцию для усечения временных таблиц и предотвращения разрастания каталога pg_class.
  • Модуль online_analyze, предоставляющий функции для немедленного обновления статистики в таблицах после операций INSERT, UPDATE, DELETE и SELECT INTO.
  • Модуль plantuner, добавляющий поддержку указаний для планировщика, что позволяет отключать или включать определенные индексы при выполнении запросов.

Выпуски Postgres Pro соответствуют выпускам PostgreSQL, но могут выходить чаще. Схема версионирования этой СУБД основана на схеме версионирования PostgreSQL, но включает дополнительную цифру для обозначения дополнительных изменений и расширений.

Postgres Pro Enterprise

Postgres Pro Enterprise — это самая актуальная версия PostgreSQL с добавленными дополнительными изменениями и расширениями, разработанными компанией Postgres Professional.

На данный момент эта версия СУБД с пометкой Enterprise имеет следующие отличия от таковой с индексом Standard:

  • Добавлен алгоритм поиска k ближайших соседей (KNN) для индексов SP-GiST и B-дерева.
  • Внедрена реализация индексов RUM, основанных на GIN, в качестве отдельного модуля.
  • Операция CREATE INDEX с индексами GiST, GIN и SP-GiST генерирует более компактные журналы транзакций (WAL).
  • Добавлен таймаут для сеансов, находящихся в режиме простоя, на стороне сервера (idle_session_timeout).
  • Поддержка алгоритма SHA-2 для шифрования паролей.
  • Внедрено сжатие на уровне страниц (CFS).
  • Добавлена поддержка автономных транзакций.
  • Добавлен новый рабочий процесс для планирования задач по правилам (pgpro_scheduler).
  • Добавлена поддержка перемещаемых таблиц (pg_transfer).
  • Внедрено расширение pg_hint_plan.
  • На 64-битных платформах используется 64-битный тип данных для идентификаторов транзакций.
  • Введено «отложенное» размещение временных таблиц на диске.
  • Поддержка согласованного чтения на ведомом сервере, ожидание применения WAL (WAITLSN).
  • Добавлена утилита pg_repack для управления репликацией.
  • Внедрено расширение multimaster.
  • Добавлена возможность смены серверов для подключений libpq.
  • Представлено расширение aqo для адаптивной оптимизации запросов.
  • Реализован декларативный синтаксис секционирования.
  • Добавлена служба мониторинга mamonsu, интегрируется как агент Zabbix.
  • Введено расширение pg_wait_sampling для периодического сбора статистики по событиям ожидания, что позволяет анализировать активность сервера и текущие события ожидания для обычных и фоновых процессов.

Эти улучшения и расширения делают Postgres Pro Enterprise мощным и гибким решением для различных сценариев использования данных.

Сравнение с PostgreSQL

Представьте себе полнофункциональную версию PostgreSQL с множеством мощных улучшений и сертификацией для использования в России.

Postgres Pro можно рассматривать как полную замену традиционной PostgreSQL. Это означает, что у нас есть в руках система, которая ориентирована на обеспечение максимальной функциональности и надежности хранимых данных. Это идеальное решение для систем, где допустимы потери данных или искажения. Основные области применения этой СУБД включают финансовый сектор, транспорт, складские операции, системы управления бизнесом и многое другое.

Надежность здесь не означает упрощение или ограничение функциональности — Postgres Pro отлично подходит для добавления специализированных процедур во встроенный язык запросов, работы с бинарными данными, географическими точками и JSON-документами. Все современные функциональности СУБД доступны, и при этом производительность системы остается высокой и стабильной.

Как и родительская PostgreSQL, эта СУБД легко масштабируется, что позволяет переносить нагрузку с одного сервера БД на другой, не потеряв при этом данные и обеспечивая непрерывное обслуживание клиентов.

Postgres Pro - российская СУБД на основе PostgresSQL

Кроме того, есть ряд функций, которых нет в оригинальной PostgreSQL:

  1. Multimaster — это революционное изменение, позволяющее писать и читать данные на разных серверах в кластере, при этом данные остаются идентичными. Оригинальная PostgreSQL предоставляет только традиционную мастер-серверную репликацию, а эта СУБД предоставляет более надежную и отказоустойчивую альтернативу.
  2. Сертификация и включение в реестр сертифицированных средств защиты информации (ФСТЭК). Это позволяет использовать эту СУБД в российских отраслях, требующих сертификации.
  3. Интеграция с продуктами 1С. Эта СУБД обеспечивает совместимость с популярными продуктами 1С, что позволяет использовать новые функции и улучшения без проблем.
  4. Сжатие данных: эта СУБД умеет эффективно сжимать данные, что позволяет значительно экономить место на диске.
  5. Улучшенные механизмы транзакций. Эта СУБД предоставляет более простые и понятные способы обновления и отката важных записей в базе данных.
  6. Поддержка сертифицированных ФСТЭК дистрибутивов Linux: это важно для разработчиков, работающих с регулируемыми государством областями.
  7. Усовершенствованные инструменты для резервного копирования, мониторинга и безопасности: эта СУБД предоставляет надежные методы создания резервных копий и дополнительные инструменты для аналитики и администрирования.

Преимущества

Преимущества СУБД от Postgres Pro включают:

  • Надежность и устойчивость даже при очень высоких нагрузках, что делает ее отличным выбором для критически важных приложений.
  • Кроссплатформенность, поддерживающая множество операционных систем, включая FreeBSD, Linux, Solaris, Windows и OS X, что обеспечивает гибкость в выборе платформы.
  • Включение в Единый реестр отечественных программ и баз данных Минкомсвязи, что подтверждает соответствие российским стандартам и требованиям.
  • Масштабируемость на современных больших серверах, что позволяет эффективно управлять растущей нагрузкой и данными.
  • Встроенные средства защиты данных и наличие сертификата ФСТЭК, что обеспечивает безопасность данных и их соответствие российским стандартам безопасности.

Высокий уровень соответствия международным стандартам ISO/ANSI SQL 92 и 99, а также поддержка множества интерфейсов программирования, включая Tcl, Perl, C, C++, PHP, ODBC, JDBC, Embedded SQL in C и Python, что делает СУБД гибкой и удобной для разработчиков.

Документация

На документации хочется заострить особое внимание. В отличие от многих других СУБД, эта СУБД может похвастаться не только отличной документацией, но и непосредственно самостремлением разработчиков и поддержкой этого проекта донести правильную и четко структурированную информацию до потенциального пользователя, что однозначно подогревает интерес к данной СУБД и платформе в целом.

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

Таким образом, даже начинающих программист или системный администратор сможет без особого труда и ознакомиться с платформой, и изучить более глубокие, сложные темы, не прибегая к сторонним сервисам или платным курсам от известным многим сайтам с курсами.

Postgres Pro - российская СУБД на основе PostgresSQL

Заключение

В целом, статья предоставляет обширный обзор СУБД Postgres Pro, рассматривая ее ключевые особенности и преимущества. Эта СУБД, разработанная российской компанией Postgres Professional, представляет собой мощную и надежную систему управления базами данных, основанную на открытом исходном коде PostgreSQL. Она поддерживает разнообразные технические характеристики, включая надежность, кроссплатформенность, масштабируемость и высокий уровень безопасности данных.

Postgres Pro также выделяется своей активной командой разработчиков, вниманием к потребностям российских заказчиков и соответствием мировым стандартам SQL. Благодаря этим факторам, она стала популярным выбором как для критически важных государственных проектов, так и для крупных частных организаций.

В заключение, эта СУБД продолжает укреплять свою позицию как важный игрок в мире СУБД, предоставляя надежные и современные решения для управления данными. Ее активное участие в проекте PostgreSQL, высокий уровень поддержки и соблюдение стандартов делают ее заслуженным выбором для широкого круга задач, от малых приложений до крупных корпоративных систем.

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
IaaS SaaS PaaS
Добавить комментарий

Больше новостей — на нашем Telegram-канале