
Avec ces nouvelles fonctionnalités, PostgreSQL entend devenir le «choix par défaut pour un nombre encore plus grands d’applications, qu’il s’agisse de startups, de grandes entreprises ou d’agences gouvernementales».
1. UPSERT
UPSERT, raccourci de « INSERT, ON CONFLICT UPDATE », est une fonctionnalité réclamée depuis longtemps par les développeurs d’applications.
Elle permet de traiter de la même façon l’ajout ou l’actualisation de lignes.
UPSERT simplifie le développement des applications web et mobile en permettant de laisser la base gérer les conflits entre modifications concurrentes des données.
Cette fonctionnalité supprime également la dernière barrière à la migration d’applications MySQL historiques vers PostgreSQL.
Développée sur les deux dernières années par Peter Geoghegan, programmeur au sein de la société Heroku, l’implantation de UPSERT au sein de PostgreSQL est nettement plus souple et puissante que celle de la plupart des autres SGBDR.
La nouvelle clause ON CONFLICT permet d’ignorer la nouvelle donnée, ou d’actualiser différentes colonnes ou relations, de façon à supporter les chaînes d’ETL (Extract, Transform, LOAD) les plus complexes.
Et, à l’instar de PostgreSQL, cette fonctionnalité a été conçue pour être totalement concurrentielle, et s’intégrer avec les autres fonctionnalités de PostgreSQL, dont la réplication logique.
2. Row Level Security
PostgreSQL continue d’étendre les possibilités de sécurisation des accès, avec la nouvelle fonctionnalité Row Level Security (RLS).
RLS propose un vrai contrôle d’accès par ligne et par colonne, qui s’intègre avec les outils externe de sécurisation, tel SELinux.
PostgreSQL est déjà connu comme « la base la plus sécurisée par défaut ». RLS conforte cette position de meilleur choix par défaut pour les applications à fort besoin de sécurisation, telles que la conformité PCI, la dIrective Européenne de protection des données, et les standards de protection des données des systèmes de santé.
RLS est l’aboutissement de 5 ans d’ajout de fonctionnalités de sécurité à PostgreSQL, ce qui inclut les travaux de KaiGai Kohei de NEC, Stephen Frost de Crunchy Data, et ceux de Dean Rasheed. À travers cette fonctionnalité, les administrateurs de base de données peuvent définir des politiques de sécurité, qui filtrent les lignes visibles en fonction des utilisateurs.
La sécurisation mises en place par ce biais est résistante aux injections SQL et autres trous de sécurité de niveau applicatif.
3. Fonctionnalités Big Data
PostgreSQL 9.5 inclut de nombreuses nouvelles fonctionnalités pour les bases plus volumineuses, et l’intégration avec les systèmes Big Data.
Ces fonctionnalités garantissent que PostgreSQL va continuer de jouer un rôle majeur dans le marché grandissant du Big Data en logiciels libres.
Citons :
– Les index BRIN : Ce nouveau type d’index permet la création d’index beaucoup plus petits, mais très efficaces, pour les tables volumineuses. Il est nécessaire que les données soient ordonnées.
Par exemple, des tables contenant des millions de lignes de traces peuvent être indexées et interrogées en 5% du temps nécessaire lors de l’utilisation d’index de type BTree.
– Tris plus rapides : PostgreSQL trie désormais les données textuelles et numériques plus rapidement, à l’aide d’un algorithme appelé « clés abrégées » ou « abbreviated keys ». Cela accélère certaines requêtes qui nécessitent de trier des volumes considérables de données d’un facteur 2 à 12, et peut également accélérer la création d’index d’un facteur 20.
CUBE, ROLLUP et GROUPING SETS : Ces nouvelles clauses du standard – permettent de produire des rapports avec plusieurs niveaux de synthèse en une seule requête. CUBE permet également une meilleure intégration de PostrgreSQL avec un nombre plus grand d’outils de création de rapports OLAP (Online Analytic Processing), tel Tableau.
– Les Foreign Data Wrappers (FDW) : Ils permettent déjà d’utiliser PostgreSQL pour interroger des systèmes Big Data, tel Hadoop ou Cassandra. La version 9.5 ajoute IMPORT FOREIGN SCHEMA et les jointures au niveau des sources externes, ce qui rend les connexions aux données externes plus efficaces et plus faciles à établir.
– TABLESAMPLE : Cette clause SQL permet de récupérer rapidement un échantillon statistique d’une table sans tri coûteux.
Liens
– Téléchargement
– Notes de version

