ArticleDonnées & IA
PostgreSQL 15 rationalise la gestion des charges de travail et améliore les
Les fonctionnalités livrées avec la version 15 de la base de données open source PostgreSQL incluent un tri et une compression améliorés, la commande MERGE et d'autres outils de gestion de la charge de travail.

PostgreSQL 15, dernière version de la très populaire base de données open source, est désormais disponible, avec à la clef des améliorations de performance et de nouvelles fonctions et capacités pour gérer les charges de travail dans les déploiements locaux et distribués. Publiée le 13 octobre par le PostgreSQL Global Development Group, qui supervise le développement de la base de données, PostgreSQL 15 est téléchargeable sur postgresql.org. L’arrivée de ces dernières fonctionnalités revêt une importance accrue, car les fournisseurs de services cloud public comme Google, Microsoft et Oracle ajoutent la prise en charge de PostgreSQL à leurs produits en raison de sa popularité croissante. La semaine dernière, Microsoft a ajouté la prise en charge de PostgreSQL à Cosmos DB et, en mai, Google Cloud Platform (GCP) avait lancé en avant-première publique une base de données en tant que service (DBaaS) baptisée AlloyDB, entièrement gérée et compatible avec PostgreSQL.
Des performances de tri et une compression améliorées
Selon le groupe de développement, PostgreSQL 15 bénéficie de meilleurs algorithmes de tri en mémoire et sur SSD, en précisant que des tests de référence ont montré une augmentation de 25 à 500 % de la vitesse, en fonction des types de données. Le tri est une étape supplémentaire prise par les développeurs pour s'assurer que le tableau de sortie d'une requête ne revienne pas dans un ordre non spécifié. Si le tri n'est pas effectué, le système de gestion de base de données renverra un tableau de sortie basé sur le balayage et l'ordre à l'intérieur du disque, ce qui n'est pas utile à des fins d'analyse. Selon le groupe PostgreSQL, l'utilisation de row_number(), rank(), dense_rank() et count() comme fonctions de fenêtre peut apporter des avantages de performances pour cette version. Les fonctions de fenêtre permettent aux développeurs d'effectuer des calculs sur un ensemble de lignes liées à la requête en cours.
En outre, les requêtes utilisant SELECT DISTINCT - une instruction SQL utilisée pour supprimer les lignes en double de la table de résultats - peuvent désormais être exécutées en parallèle dans PostgreSQL 15. « Même si de nombreuses requêtes ne peuvent pas bénéficier de l'exécution parallèle, celles qui le peuvent s'exécutent plus de deux fois plus vite en utilisant cette méthode, » a déclaré le groupe de développement. S'appuyant sur la version précédente de PostgreSQL, qui supportait les requêtes distantes asynchrones, cette version supporte dorénavant les commits asynchrones à l'aide d'un outil, baptisé « PostgreSQL foreign data wrapper ». Contrairement à l'architecture de code synchrone, où les tâches sont dépendantes les unes des autres (exécutées en série), l'architecture asynchrone permet à différentes tâches de s'exécuter indépendamment et n'entraîne pas l'arrêt ou le gel du code si une tâche signale une erreur. D'autres améliorations de performance incluent les nouvelles facilités d'archivage et de sauvegarde. PostgreSQL 15 supporte désormais les algorithmes de compression de données LZ4 et Zstandard (zstd), qui augmentent la vitesse de compression et de décompression, offrant ainsi des avantages en termes d'espace et de performances pour certaines charges de travail, selon le groupe. Cette version du système de gestion de base de données permet également l'utilisation de modules personnalisés pour l'archivage, évitant ainsi le travail supplémentaire lié à l'utilisation d'une commande shell.
Un codage facilité avec la commande MERGE
Ces fonctionnalités de PostgreSQL 15 peuvent aider les développeurs à coder plus facilement. Par exemple, cette version est dotée d'une commande SQL standard MERGE qui permet aux développeurs d'écrire des instructions SQL conditionnelles comprenant des actions INSERT, UPDATE et DELETE dans une seule instruction. « MERGE évite de multiples instructions PL/SQL et simplifie les scripts SQL pour les développeurs de bases de données et les DBA. La mise en œuvre de Postgres est conforme à la norme SQL et aide les développeurs de Microsoft SQL Server et d'Oracle Database à passer à Postgres », a déclaré EnterpriseDB, le fournisseur de logiciels et de services basés sur la base de données open source PostgreSQL, et l'un des plus grands contributeurs à Postgres, qui a contribué à l'introduction de cette fonctionnalité dans la dernière version. Pour renforcer la sécurité de PostgreSQL 15, une fonctionnalité baptisée « security_invoker » ajoute une couche de protection aux données sous-jacentes. « L'invoker permet aux entreprises de créer des vues qui interrogent les données en utilisant les restrictions et les permissions de l'appelant et non du créateur de la vue », a expliqué le groupe.
Plus d'options avec la réplication logique
« PostgreSQL 15 offre également plus de flexibilité pour la gestion de la réplication logique », a aussi déclaré le groupe de développement, ajoutant que cette version comportait un filtrage des lignes et des listes de colonnes pour les éditeurs. « Cela permet aux développeurs de choisir de répliquer un sous-ensemble spécifique de données d'une table », a précisé le PostgreSQL Global Development Group. D'autres fonctionnalités de réplication incluent la prise en charge de l'utilisation du commit biphasé avec la réplication logique et des outils pour simplifier la gestion des conflits. « Dans cette version, il est par ailleurs possible de ne pas rejouer une transaction conflictuelle et de désactiver automatiquement un abonnement à une vue si une erreur est détectée », a encore expliqué le groupe de développement dans ses notes de publication. Parmi les autres mises à jour notables, on peut encore citer un format de journalisation qui facilite la configuration et le traitement des bases de données. Baptisé Jsonlog, ce format de journalisation produit des données de journalisation en utilisant une structure JSON définie, ce qui facilite le traitement des données.
Des fonctions pour simplifier le travail et des fonctions obsolètes supprimées
Cette version comporte aussi un tas de nouvelles fonctions pour simplifier le travail des développeurs et des changements pour accroître les performances :
Les statistiques au niveau du serveur sont désormais collectées dans la mémoire partagée, ce qui évite à la fois le processus de collecte des statistiques et d’avoir à écrire périodiquement ces données sur le disque. Cette version s’enrichit d’une extension intégrée pg_walinspect, qui permet aux utilisateurs d'inspecter le contenu des fichiers journaux en écriture directement depuis une interface SQL. PostgreSQL 15 révoque également la permission CREATE de tous les utilisateurs, à l'exception du propriétaire de la base de données du schéma public (ou par défaut). Cette version supprime à la fois le mode « sauvegarde exclusive », décrié de longue date, et le support de Python 2 de PL/Python. Cette version comporte de plus des fonctions pour utiliser les expressions régulières afin d'inspecter les chaînes de caractères : regexp_count(), regexp_instr(), regexp_like() et regexp_substr(). PostgreSQL 15 étend aussi la fonction range_agg pour agréger les types de données à plages multiples, introduits dans la version PostgreSQL 14 précédente.