СУБД Postgres Pro Enterprise 16.2.1: новые функции для аналитики, масштабируемости и оптимизации запросов
Postgres Professional, российский разработчик СУБД, выпустил обновление Postgres Pro Enterprise — флагманской редакции СУБД для высоконагруженных систем. Релиз включает возможности мажорной версии Postgres Pro Enterprise 16.1.1, а также PostgreSQL 16.2 и ряд новых разработок для повышения безопасности, улучшенной оптимизации запросов, аналитики и работы с большими объектами.
Среди ключевых обновлений Enterprise 16.2.1:
Интеграция с расширением Citus
Citus — расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет шардирования данных на нескольких узлах PostgreSQL. Интеграция с Citus позволит эффективно обрабатывать аналитические данные на десятках серверов. В отличие от выпущенной в феврале 2024 года в широкое использование СУБД Postgres Pro Shardman, ориентированной на OLTP-нагрузку, Citus ориентирован на аналитическую OLAP-нагрузку. Заказчик сможет выбрать тот тип шардирования, который больше подходит для его приложения.
Перепланировщик запросов Replan
Адаптивное выполнение (adaptive query execution) — переоптимизация, которая применяется во время выполнения запроса. В составе Enterprise 16.2.1 заказчикам доступна первая компонента AQE — Перепланировщик запросов (Replan), срабатывающий по максимальному времени выполнения.
Работа с большими объектами
Добавлено расширение dbms_lob, позволяющее обращаться к определённым частям больших объектов (LOB) или большим объектам целиком и управлять ими. Поддерживаются объекты CLOB, BFILE и временные BLOB.
Новые возможности pg_proaudit
Расширение pg_proaudit позволяет регистрировать события, связанные с безопасностью. Новая версия pg_proaudit 2.0 поддерживает правила, обобщающие типичные группы действий пользователей, а также срабатывание правил по группам пользователей, а не по их индивидуальным учётным записям.
Пакеты с приватными функциями и переменными
Введены два новых модификатора для работы с пакетами: #private и #export. Модификатор #private определяет функции и процедуры как внутренние, а модификатор #export определяет, какие переменные пакета являются публичными.
Ассоциативные массивы и хэш-коллекции (аналог indexed by таблиц PL/SQL в Oracle)
Изначально в языке программирования PL/pgSQL ассоциативные массивы не поддерживались, и это создавало проблемы при миграции — приходилось имитировать работу с ними вручную, используя сложные и неэффективные конструкции в коде. В Postgres Pro Enterprise 16 впервые реализована поддержка таких массивов. Бесконечные структуры «ключ-значение» реализованы в расширении pg_variables. В качестве ключа можно использовать как целое число, так и символьное значение. Хранимые процедуры и функции PL/pgSQL в Postgres Pro адаптированы для использования таких массивов и коллекций.
Поддержка ассоциативных массивов и хэш-коллекций в утилите автоматической конвертации кода ora2pgpro
ora2pgpro — решение для автоматического портирования пакетов и автономных транзакций Oracle в пакеты и автономные транзакции Postgres Pro Enterprise. В новой версии утилиты ora2pgpro 24.1.1 добавлена функциональность автоматической конвертации PL/SQL-кода работы с коллекциями (varray, table of ... indexed by ...) в эквивалентный код для СУБД Postgres Pro Enterprise. Это позволит еще больше сократить объем работ при миграции кода из СУБД Oracle в Postgres Pro Enterprise.
Среди других обновлений и усовершенствований нового релиза: встроенный отказоустойчивый кластер BiHA обновлен до версии 1.1: улучшена производительность и добавлены новые возможности; добавлен параметр crash_info для управления сбором информации о сбоях сервера; добавлено расширение apache_age, предоставляющее функциональность для работы с графовыми базами данных; приложение pg_probackup обновлено до версии 2.7.2 Enterprise: оптимизировано использование памяти при резервном копировании в удалённом режиме; обновлено расширение pg_variables: добавлена функциональность итератора для любых коллекций, а также функции для работы с общими переменными-коллекциями; расширение pgpro_stats обновлено до версии 1.7: улучшена производительность и исправлены ошибки; модуль pgpro_pwr обновлён до версии 4.4. Добавлена поддержка pgpro_stats 1.7, и в отчёты включены новые интерактивные возможности и фильтрация на основе подстроки; модуль sr_plan: в новой версии улучшена производительность, добавлена возможность замораживать планы запросов на основе набора указаний, а также сохранять разные планы запроса с разными наборами параметризованных констант.