PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Dix façons d'étendre les fonctionnalités de PostgreSQL

Comme vous le savez peut-être, vous pouvez étendre les fonctionnalités de PostgreSQL en utilisant les extensions PostgreSQL. Vous pouvez utiliser différentes extensions pour faire de PostgreSQL une version entreprise et répondre à des besoins spécifiques. Dans ce blog, nous verrons certaines des extensions open source les plus populaires dans PostgreSQL et comment elles peuvent être utilisées pour étendre ses capacités.

PostgreSQL est la base de données open source la plus avancée. Chaque année, la communauté PostgreSQL publie une nouvelle version avec de nouvelles fonctionnalités, mais de nombreuses fonctionnalités sont développées à l'aide d'extensions qui peuvent être utilisées pour un cas d'utilisation particulier.

Certaines de ces extensions sont très puissantes et populaires pour créer un environnement PostgreSQL de niveau entreprise.

Pg_stat_statements

Le module pg_stat_statements fournit un moyen de suivre les statistiques d'exécution de toutes les instructions SQL exécutées par un serveur PostgreSQL. Lorsque le module pg_stat_statements est chargé, il suit les statistiques sur toutes les bases de données du serveur. Les statistiques recueillies par le module pg_stat_statements sont mises à disposition via une vue nommée pg_stat_statements. Vous pouvez vérifier plus de détails sur les fonctions pg_stat_statements et le paramètre de configuration ici.

PostGIS

PostGIS est une extension du système de base de données PostgreSQL qui permet de stocker des objets SIG (systèmes d'information géographique) dans la base de données. Il inclut la prise en charge des index spatiaux R-Tree basés sur GiST et des fonctions d'analyse et de traitement des objets SIG.

PostGIS est utilisé pour les objets spatiaux et géographiques pour PostgreSQL. PostGIS ajoute des types (géométrie, géographie, raster, etc.) à la base de données PostgreSQL. PostGIS ajoute également des fonctions, des opérateurs et des améliorations d'index qui s'appliquent à ces types spatiaux. Vous pouvez vérifier la méthode d'installation ici.

Postgres_fdw

Le module postgres_fdw fournit le wrapper de données étrangères postgres_fdw, qui peut être utilisé pour accéder aux données stockées dans des serveurs de base de données PostgreSQL externes. Lorsqu'il y a deux bases de données PostgreSQL, postgres_fdw fait référence à la table de l'autre base de données d'une base de données. Une fois que vous avez défini FOREIGN TABLE, vous pouvez faire SELECT, INSERT, UPDATE, DELETE comme une base de données locale.

La fonctionnalité fournie par le module postgres_fdw chevauche sensiblement la fonctionnalité de l'ancien module dblink. Mais le module postgres_fdw fournit une syntaxe plus transparente et conforme aux normes pour accéder aux tables distantes, et il peut offrir de meilleures performances dans de nombreux cas.

Le principal cas d'utilisation des tables étrangères est de mettre les données à la disposition des systèmes sans les répliquer ou les dupliquer. Il existe même des implémentations simples de partitionnement à l'aide de FDW, car les données des autres partitions peuvent être disponibles pour les requêtes via les FDW.

Dans Oracle, vous pouvez obtenir les données de tables de base de données distantes à l'aide de DBLinks, mais la principale différence entre DBLinks et FDW est que FDW peut gérer localement les métadonnées ou la définition de table sur la table étrangère.

Mysql_fdw

Mysql_fdw est une extension PostgreSQL qui implémente un Foreign Data Wrapper (FDW) pour MySQL. Le module Mysql_fdw facilite l'utilisation du serveur PostgreSQL en tant que client pour le serveur MySQL, ce qui signifie qu'il peut ensuite récupérer les données de la base de données MySQL en tant que client. Actuellement, EnterpriseDB maintient ce module sur github.

La version précédente de mysql_fdw n'était prise en charge qu'en lecture seule, mais la dernière version fournit la capacité d'écriture. L'utilisateur peut désormais émettre des instructions d'insertion, de mise à jour et de suppression pour les tables étrangères à l'aide de mysql_fdw. Il utilise le mécanisme de conversion de type PostgreSQL pour fournir une conversion de type opposée entre les types de données MySQL et PostgreSQL.

Hstore

Le module hstore implémente le type de données hstore pour stocker des paires clé-valeur dans une seule valeur dans PostgreSQL. Le type de données hstore est très utile dans de nombreux cas d'utilisation, tels que des données semi-structurées ou des lignes avec de nombreux attributs rarement interrogés. Notez que les clés et les valeurs ne sont que des chaînes de texte uniquement.

Avant de travailler avec le type de données hstore, vous devez créer l'extension hstore qui charge le module contrib sur votre instance PostgreSQL.

Pgaudit

pgAudit est une extension d'audit PostgreSQL qui fournit une journalisation d'audit détaillée de session et/ou d'objet via la fonction de journalisation PostgreSQL standard.

L'objectif principal du module pgAudit est de fournir aux utilisateurs de PostgreSQL la capacité de produire des journaux d'audit souvent requis pour se conformer aux certifications gouvernementales, financières ou ISO.

Généralement, un audit est une inspection officielle des comptes d'un individu ou d'une organisation, généralement par un organisme indépendant. Les informations recueillies par le module pgAudit sont correctement appelées piste d'audit ou journal d'audit.

Le module pgAudit a été développé pour prendre en charge les versions PostgreSQL 9.5 et supérieures.

La journalisation d'audit de session du module pgAudit fournit des journaux détaillés de toutes les instructions exécutées par un utilisateur dans le backend. Vous pouvez vérifier plus de détails, la configuration et comment l'installer et l'utiliser dans PostgreSQL ici.

Orafce

Orafce est un module qui implémente des fonctions, des types de données et des packages compatibles avec Oracle. Il s'agit d'un outil open source avec licence BSD afin que tout le monde puisse utiliser cet outil. Ce module est très utile dans la tâche de migration d'Oracle vers PostgreSQL, il possède de nombreuses fonctions Oracle implémentées dans PostgreSQL.

Les applications utilisent généralement ces fonctions avec plusieurs occurrences. Vous pouvez réduire le coût de modification de SQL en utilisant cet outil. Vous pouvez vérifier comment migrer d'Oracle vers le blog PostgreSQL.

Toutes les fonctions et tous les packages sont correctement implémentés et bien testés.

Certaines des fonctions sont :

  • Dbms_output
  • Dbms_random
  • utl_file – fonctions liées au système de fichiers
  • Dbms_pipe et dbms_alert
  • PLVdate,PLVstr, PLVchr
  • Type de données DATE compatible avec Oracle et fonctions telles que ADD_MONTHS, LAST_DAY, NEXT_DAY, etc.
  • Fonction NVL
  • Fonction SUBSTR et SUBSTRB
  • Compatibilité VARCHAR2 et NVARCHAR2
  • TO_DATE()
Téléchargez le livre blanc aujourd'hui PostgreSQL Management &Automation with ClusterControlDécouvrez ce que vous devez savoir pour déployer, surveiller, gérer et faire évoluer PostgreSQLTélécharger le livre blanc

Pg_bulkload

Le module Pg_bulkload fournit une capacité de chargement de données à haute vitesse aux utilisateurs de PostgreSQL. Le module pg_bulkload est conçu pour charger une énorme quantité de données dans une base de données. Vous pouvez charger les données dans une table en contournant les tampons partagés PostgreSQL. Le module pg_bulkload possède également des fonctionnalités ETL telles que la validation des données d'entrée et la transformation des données avec des fonctions de filtrage.

L'objectif initial du module pg_bulkload était une alternative plus rapide à la commande COPY dans PostgreSQL.

Le module Pg_bulkload est développé et maintenu par NTT OSS Center.

REMARQUE IMPORTANTE :dans un environnement de réplication en continu dans PostgreSQL, le module pg_bulkload ne fonctionne pas correctement. Voir ici pour plus de détails.

Pgstattuple

Le module pgstattuple fournit diverses fonctions pour obtenir des statistiques au niveau du tuple dans PostgresQL. La fonction du module pgstattuple renvoie la longueur physique d'une relation, le pourcentage de tuples "morts" et d'autres informations. Cela peut être utile aux utilisateurs pour déterminer si le vide est nécessaire ou non. L'argument de la fonction est le nom de la relation cible (éventuellement qualifié par le schéma) ou l'OID.

Pg_trgm

pg_trgm est une extension PostgreSQL fournissant une simple correspondance de chaîne floue dans PostgreSQL. Sa surcharge opérationnelle et conceptuelle est bien inférieure à la recherche en texte intégral PostgreSQL ou à un moteur de recherche séparé.

Un trigramme ou trigraphe est un groupe de trois caractères consécutifs tirés d'une chaîne. Vous pouvez mesurer la similarité de deux chaînes en comptant le nombre de trigrammes qu'elles partagent. Cette idée simple de trigramme s'avère très efficace pour mesurer la similarité des mots dans de nombreuses langues naturelles.

En général, le module pg_trgm peut aider quand :

  • Vous avez besoin d'une correspondance de chaîne floue insensible à la casse dans PostgreSQL.
  • Vous voulez accélérer LIKE, ILIKE, ~ ou ~* dans PostgreSQL.
  • Vous souhaitez rechercher des modèles qui ne sont pas ancrés à gauche (par exemple, %john%). De tels modèles ne sont pas pris en charge par les index B-tree dans PostgreSQL.

La liste de modules/extensions ci-dessus est très utile pour étendre les capacités de PostgreSQL. Il existe d'autres extensions qui ne sont pas incluses dans le blog, mais elles sont très utiles pour étendre les fonctionnalités de PostgreSQL. Ce sont les suivants.

  • Extensions de langage :PL/Python, PL/Perl, PL/R, PL/v8, PL/sh, etc.
  • Cstore_fdw
  • Mongo_fdw
  • HypoPG
  • Tds_fdw
  • Profiler

Conclusion

Il existe de nombreuses extensions dans les extensions prises en charge par la communauté PostgreSQL et certaines extensions tierces, toutes utilisées pour un cas d'utilisation particulier. Vous pouvez étendre les capacités ou fonctionnalités de PostgreSQL en utilisant ces modules.