Компания Postgres Professional, российский разработчик СУБД, объявила о выходе Postgres Pro Enterprise 16.1.1 — главного ежегодного релиза флагманской редакции СУБД Postgres Pro для высоконагруженных систем. По количеству новых важных функций это самый значимый релиз российской СУБД за последние пять лет.
Релиз включает все возможности предыдущей мажорной версии Postgres Pro Enterprise 15, а также выпущенной осенью PostgreSQL 16 и большой ряд новых разработок. Все они призваны значительно повысить безопасность, масштабируемость и надежность СУБД.
Впервые в широкое пользование вышла стабильная версия BiHA (Build-in High Availability) — встроенная система управления отказоустойчивым кластером Postgres Pro Enterprise. В отличие от традиционных систем обеспечения высокой доступности PostgreSQL, BiHA интегрирована непосредственно в ядро Postgres Pro Enterprise, не требует добавления в инфраструктуру дополнительных узлов, простая в настройке и соответствует всем современным требованиям информационной безопасности.
Роль Администратор без доступа к данным создана по запросу клиентов, которым нужно обеспечивать повышенный уровень безопасности, но без настройки мандатного доступа. Она позволит защититься от злоумышленников, имеющих права Администратора БД или даже Администратора СУБД, не давая им ни модифицировать, ни читать конфиденциальные данные.
Начиная с версии Enterprise 16.1.1 у администраторов появляется новый инструмент повышения эффективности использования СУБД с большим количеством пользователей — возможность создавать планы управления ресурсами и переключаться между ними, настраивая для сеансов приоритеты использования процессора и операций ввода/вывода.
В классическом Postgres не существует понятия «пакетов» — используемых в Oracle наборов функций и процедур. Чтобы упростить миграцию кода с языка PL/SQL, в Postgres Pro Enterprise 15 была добавлена функциональность, работающая по аналогии с пакетами Oracle. В 16 версию Enterprise по запросу клиентов добавлены следующие системные пакеты UTL_SMTP, UTL_MAIL, UTL_HTTP и DBMS_APPLICATION_INFO (портирован также и в 15 версию).
Все вышеперечисленное позволяет при миграции не тратить время и ресурсы на создание соответствующей функциональности «с нуля», а воспользоваться готовыми системными пакетами из СУБД Postgres Pro Enterprise.
Одна из основных проблем реляционных СУБД, которые используют стоимостную модель для планирования и выполнения SQL-запроса: ошибки вычисления стоимостей, возникающие вследствие образования зависимостей в данных или устаревшей статистики, приводят к выбору ошибочных планов выполнения запросов и значительным задержкам при выполнении таких вычислений, без возможности как-то повлиять на их исправление. Адаптивный оптимизатор решает указанную проблему тем, что в автоматическом режиме собирает статистики планирования и выполнения запросов и, используя методы машинного обучения, на этапе последующего выполнения заменяет ошибочную оценку стоимости операции на корректную, что позволяет планировщику Postgres Pro выбрать более эффективный план.
Раcширение sr_plan в комбинации с модулем aqo версии 2.0 реализуют первую в мире Postgres интеллектуальную систему исправления и стабилизации проблемных планов запросов «на лету». Включенный в режиме автозахвата sr_plan позволяет «поймать» скорректированные с помощью AQO 2.0 планы и применить их для использования с любыми параметрами проблемных запросов с мгновенным эффектом и экономией на времени планирования. Но также sr_plan эффективен и как самостоятельный инструмент.
Реализует ссылку на внешний файл размером до 4 Гб и методы работы с ним. Наличие технологии BFile в СУБД Postgres Pro позволяет сократить трудозатраты на миграцию с Oracle. Использование этого типа данных также будет возможно через системный пакет DBMS_LOB, выпуск которого планируется первой половине 2024 года. Postgres Pro BFile можно использовать не только при миграции с СУБД Oracle, но и в новых проектах. Эта функциональность востребована у многих клиентов. Вынос файлов из БД позволяет уменьшить ее размер (обезжирить), упростить администрирование БД и ускорить работу с LOB.
В новой версии улучшена производительность и добавлены новые возможности, в том числе: слияние инкрементальных резервных копий сделано совместимым с системой объектного хранения S3 и выполняется теперь без создания временных локальных файлов; оптимизирована работа с памятью при работе с большими базами данных: теперь для восстановления БД из нескольких тысяч таблиц и 100 инкрементальных копий требуется почти в три раза меньше памяти.
Релиз Enterprise 16 наследует реализованную в PostgreSQL 16 поддержку двунаправленной логической репликации таблиц, позволяющей синхронизировать изменения в двух таблицах на разных серверах. Добавленные в PostgreSQL 16 возможности репликации позволяют создавать конфигурации с несколькими активными серверами (режим active-active), на которых одновременно можно выполнять операции INSERT, UPDATE, DELETE.
Начиная с декабря 2023 года всем пользователям любых редакций Postgres Pro доступна новая графическая платформа управления базами данных. Платформа охватывает полный спектр задач администратора баз данных и значительно упрощает и ускоряет работу над рутинными задачами. PPEM доступен любому пользователю линейки Postgres Pro, в том числе гибридных ландшафтов: Postgres Pro + СУБД с открытым исходным кодом PostgreSQL.
Уже в феврале 2024 года пользователям будет доступна обновленная версия СУБД Postgres Pro Enterprise 16.2.1, которая включит еще несколько важных функций:
- ассоциативные массивы и хэш-коллекции (аналог indexed by таблиц PL/SQL в Oracle). Изначально в языке программирования PL/pgSQL ассоциативные массивы не поддерживались, и это создавало проблемы при миграции — приходилось реализовывать работу с ними вручную. В Postgres Pro Enterprise 16 впервые реализована поддержка таких массивов. Бесконечные структуры «ключ-значение» реализованы в расширении pg_variables. В качестве ключа можно использовать как целое число, так и символьное значение. Хранимые процедуры и функции PL/pgSQL в Postgres Pro адаптированы для использования таких массивов и коллекций;
- обновленная утилита автоматической конвертации кода ora2pgpro 2.0 ora2pgpro — решение для автоматического портирования пакетов и автономных транзакций Oracle в пакеты и автономные транзакции Postgres Pro. В новой версии утилиты ora2pgpro 2.0 добавлена функциональность автоматической конвертации PL/SQL-кода работы с коллекциями (varray, record, indexed by table) в эквивалентный код для СУБД Postgres Pro. Это позволит еще больше сократить объем работ при миграции кода из СУБД Oracle в Postgres Pro;
- интеграция с расширением CITUS. Citus — расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет шардирования данных на нескольких узлах PostgreSQL. Интеграция с Citus позволит эффективно обрабатывать аналитические данные на десятках серверов. В отличие от продукта Shardman, ориентированного на OLTP нагрузку, CITUS ориентирован на аналитическую нагрузку. Заказчик сможет выбрать тот тип шардирования, который больше подходит для его приложения;
- суперфайлы (Postgres Pro Superfile). Оптимизированная технология для хранения и обработки двоичных больших объектов в СУБД Postres Pro. Технология снимает ограничения на работу с данными типа LOB (Large OBjects) в СУБД Postgres Pro, обеспечивая высокую производительность. Для работы с данными типа Superfile обеспечивается универсальное API доступа, а также интерфейс в виде пакета DBMS_LOB;
- Pluggable toaster. TOAST (The Oversized-Attribute Storage Technique) — методика хранения сверхбольших атрибутов. Pluggable toaster — это модули, позволяющие эффективно хранить и обрабатывать неструктурированные данные. Postgres Professional разработала тостеры для JSON и текста, пользователь сможет разрабатывать тостеры для других типов данных;
- перепланировщик запросов Replan. Адаптивное выполнение (adaptive query execution) — переоптимизация, которая применяется во время выполнения запроса. В феврале в составе Enterprise 16.2.1 Postgres Professional выпустит первую компоненту AQE — Перепланировщик запросов (Replan), срабатывающий по максимальному времени выполнения. Решение даст возможность динамически выявлять проблемы с производительностью запроса и перестраивать план прямо в процессе выполнения;
- расширение pg_proaudit 2.0. Позволяет регистрировать различные события, связанные с безопасностью. Новая версия pg_proaudit 2.0 поддерживает правила, обобщающие типичные группы действий пользователей, а также срабатывание правил по группам пользователей, а не по их индивидуальным учётным записям.