Вышел PostgreSQL 9.5: UPSERT, RLS и Big Data
Сегодня PostgreSQL Global Development Group объявила о выходе PostgreSQL 9.5. Среди прочих нововведений можно отметить функцию UPSERT, безопасность на уровне строк (Row Level Security, RLS) и несколько функций работы с Big Data. По мнению разработчиков, новые функции делают PostgreSQL лучшим вариантом среди всех возможных для стартапов, больших корпораций, правительственных организаций.
Более подробно о новых функциях — под катом.
UPSERT
Наиболее востребованная функция среди разработчиков приложений, UPSERT является сокращением для «INSERT, ON CONFLICT UPDATE». Новая возможность позволяет обработать ситуацию невозможности добавления данных через «INSERT», например, из-за нарушения условий уникальности или недопустимости значения одного из полей, и вместо вывода ошибки игнорировать выполнение оператора или изменить связанные с ключевым полем данные (т.е. если запись уже существует, вместо INSERT выполнить UPDATE).
По словам представителей команды, UPSERT упрощает разработку веб и мобильных приложений. Условие ON CONFLICT позволяет игнорировать новые данные, или обновлять различные столбцы или связи таким образом, чтобы осуществлялась поддержка ETL (Extract, Transform, Load) наборов компиляторов для загрузки массивов данных. Новая функция полностью совместима со всеми другими возможностями PostgreSQL, включая Logical Replication.
Row-Level Security (RLS)
Эта функция — результат работы продолжительностью в пять лет. RLS предоставляет возможность создания политик безопасности, которые ограничивают доступ пользователям к информации в БД. Политики безопасности позволяют либо «закрыть» информацию полностью или частично, либо разрешить выполнение определенных действий с информацией.
Big Data
Здесь разработчики добавили сразу несколько новых функций, включая Block Range Indexes (BRIN), обеспечивающий более быстрый поиск некоторых типов данных. На поиск таких данных, по заявлению представителей команды, будет уходить всего 5% времени, требуемого для осуществления поиска B-tree.
В целом, в версии 9.5 много нового, реально полезного для разработчиков. При этом стоит помнить, что при обновлении некоторых старых БД могут возникнуть проблемы, об этом стоит помнить.
Еще более подробная информация о нововведениях в версии 9.5 (Wiki от разработчиков) можно доступна здесь.