Partager via


Utiliser les extensions PostgreSQL dans votre serveur PostgreSQL avec Azure Arc

PostgreSQL est optimal quand vous l’utilisez avec des extensions.

[!INCLUDE [azure-arc-data-preview](./includes/azure-arc-data-preview.md]

Extensions prises en charge

Les extensions suivantes sont déployées par défaut dans les conteneurs de votre serveur PostgreSQL Azure Arc, certaines d’entre elles sont des extensions contrib standard :

  • address_standardizer_data_us 3.3.1
  • adminpack 2.1
  • amcheck 1.3
  • autoinc 1
  • bloom 1
  • btree_gin 1.3
  • btree_gist 1.6
  • citext 1.6
  • cube 1.5
  • dblink 1.2
  • dict_int 1
  • dict_xsyn 1
  • earthdistance 1.1
  • file_fdw 1
  • fuzzystrmatch 1.1
  • hstore 1.8
  • hypopg 1.3.1
  • insert_username 1
  • intagg 1.1
  • intarray 1.5
  • isn 1.2
  • lo 1.1
  • ltree 1.2
  • moddatetime 1
  • old_snapshot 1
  • orafce 4
  • pageinspect 1.9
  • pg_buffercache 1.3
  • pg_cron 1.4-1
  • pg_freespacemap 1.2
  • pg_partman 4.7.1
  • pg_prewarm 1.2
  • pg_repack 1.4.8
  • pg_stat_statements 1.9
  • pg_surgery 1
  • pg_trgm 1.6
  • pg_visibility 1.2
  • pgaudit 1.7
  • pgcrypto 1.3
  • pglogical 2.4.2
  • pglogical_origin 1.0.0
  • pgrouting 3.4.1
  • pgrowlocks 1.2
  • pgstattuple 1.5
  • plpgsql 1
  • postgis 3.3.1
  • postgis_raster 3.3.1
  • postgis_tiger_geocoder 3.3.1
  • postgis_topology 3.3.1
  • postgres_fdw 1.1
  • refint 1
  • seg 1.4
  • sslinfo 1.2
  • tablefunc 1
  • tcn 1
  • timescaledb 2.8.1
  • tsm_system_rows 1
  • tsm_system_time 1
  • unaccent 1.1

Cette liste sera mise à jour au fil du temps.

Activer les extensions dans le serveur PostgreSQL compatible avec Arc

Vous pouvez créer un serveur PostgreSQL avec Arc avec l’une des extensions prises en charge activées en passant une liste séparée par des virgules d’extensions au paramètre --extensions de la commande create.

az postgres server-arc create -n <name> --k8s-namespace <namespace> --extensions "pgaudit,pg_partman" --use-k8s

REMARQUE : les extensions activées sont ajoutées à la configuration shared_preload_libraries. Les extensions doivent être installées dans votre base de données pour être utilisables. Pour installer une extension, vous devez exécuter la commande CREATE EXTENSION. Cette commande charge les objets empaquetés dans votre base de données.

Par exemple, connectez-vous à votre base de données et émettez la commande PostgreSQL suivante pour installer l’extension pgaudit :

CREATE EXTENSION pgaudit;

Mettre à jour les extensions

Vous pouvez ajouter ou supprimer des extensions d’un serveur PostgreSQL avec Arc existant.

Vous pouvez exécuter la commande kubectl describe pour obtenir la liste actuelle des extensions activées :

kubectl describe postgresqls <server-name> -n <namespace>

S’il existe des extensions activées, la sortie contient une section semblable à celle-ci :

  config:
    postgreSqlExtensions: pgaudit,pg_partman

Vérifiez si l’extension est installée après la connexion à la base de données en exécutant la commande PostgreSQL suivante :

select * from pg_extension;

Activez les nouvelles extensions en les ajoutant à la liste existante, ou supprimez-les en les supprimant de la liste existante. Passez la liste souhaitée à la commande de mise à jour. Par exemple, pour ajouter pgcrypto et supprimer pg_partman du serveur dans l’exemple ci-dessus :

az postgres server-arc update -n <name> --k8s-namespace <namespace> --extensions "pgaudit,pgrypto" --use-k8s

Une fois la liste des extensions autorisées mise à jour. Connectez-vous à la base de données et installez l’extension nouvellement ajoutée par la commande suivante :

CREATE EXTENSION pgcrypto;

De même, pour supprimer une extension d’une base de données existante, émettez la commande DROP EXTENSION :

DROP EXTENSION pg_partman;

Afficher la liste des extensions installées

Connectez-vous à votre base de données avec l’outil client de votre choix et exécutez la requête PostgreSQL standard :

select * from pg_extension;
  • Faites un essai. Démarrez rapidement avec Démarrage rapide d’Azure Arc sur Azure Kubernetes Service (AKS), AWS Elastic Kubernetes Service (EKS), Google Cloud Kubernetes Engine (GKE) ou sur une machine virtuelle Azure.