Configurer des extensions PostgreSQL

Vous pouvez étendre PostgreSQL en regroupant des objets SQL dans un package pour les utiliser comme une unité. Cette page contient des informations sur la configuration des extensions PostgreSQL compatibles avec Cloud SQL.

Utiliser des extensions PostgreSQL

Vous ne pouvez installer que les extensions compatibles avec Cloud SQL. Pour en savoir plus, consultez la section Extensions PostgreSQL compatibles avec Cloud SQL.

Installer une extension

Avant d'utiliser une extension, installez-la en procédant comme suit :

Conditions requises pour les droits de super-utilisateur

Dans Cloud SQL, les extensions ne peuvent être créées que par des utilisateurs disposant du rôle cloudsqlsuperuser. Lorsque vous créez une instance PostgreSQL, l'utilisateur postgres par défaut est créé automatiquement (mais vous devez définir son mot de passe). L'utilisateur postgres par défaut dispose du rôle cloudsqlsuperuser. Pour en savoir plus, consultez la page À propos des utilisateurs PostgreSQL.

Connexions entre bases de données

Pour se connecter, les instances cibles doivent se trouver dans le même réseau VPC que l'instance de connexion.

Pour les instances de cluster, vous ne pouvez pas choisir l'option Exiger des certificats clients de confiance dans la console Google Cloud. De plus, pour vous connecter à des bases de données au sein de la même instance, vous ne pouvez pas définir l'hôte sur "localhost" ou sur 127.0.0.1. Vous devez utiliser l'adresse IP indiquée pour votre instance dans Google Cloud Console.

Demander une assistance pour une nouvelle extension

Vous ne pouvez pas créer vos propres extensions dans Cloud SQL.

Pour une demande d'assistance concernant une extension, cliquez sur +1 sur le signalement, ou créez un nouveau problème. Pour obtenir la liste des problèmes signalés concernant Cloud SQL et obtenir des informations sur la création de problèmes, consultez la section Rechercher ou créer des signalements de problème et des demandes de fonctionnalités par produit.

Extensions PostgreSQL compatibles avec Cloud SQL

Pour plus d'informations sur l'utilisation d'une extension spécifique, suivez le lien vers la documentation figurant dans l'un des tableaux ci-dessous.

L'assistance concernant les extensions PostgreSQL avec Cloud SQL se divise en plusieurs catégories :

PostGIS

L'extension PostGIS est compatible avec Cloud SQL pour PostgreSQL pour toutes les versions majeures.

Le tableau suivant contient les versions de l'extension PostGIS pour chaque version de Cloud SQL pour PostgreSQL :

Version de Cloud SQL pour PostgreSQL Extension PostGIS
PostgreSQL 9.6 3.2.5
PostgreSQL 10 3.2.5
PostgreSQL 11 3.2.5
PostgreSQL 12 3.2.5
PostgreSQL 13 3.4.0
PostgreSQL 14 3.4.0
PostgreSQL 15 3.4.0
PostgreSQL 16 3.4.0
PostgreSQL 17 3.4.3

Pour une version majeure spécifique de PostgreSQL, dans la commande CREATE EXTENSION, vous pouvez spécifier une version de l'extension PostGIS à l'aide de la clause VERSION.

L'extension PostGIS inclut les éléments suivants :

Pour en savoir plus, consultez la section PostGIS Installation (Installation de PostGIS).

De plus, Cloud SQL pour PostgreSQL inclut la version 3.3.0 de l'extension pgRouting, qui étend PostGIS. L'extension pgRouting améliore le traitement géospatial via le routage et l'analyse du réseau.

Vous pouvez mettre à niveau manuellement PostGIS et ses extensions associées vers leur dernière version. Pour en savoir plus sur la mise à niveau de vos extensions PostGIS, consultez la page Mettre à niveau PostGIS.

Extensions de type de données

Extension Description
btree_gin Fournit des exemples de classes d'opérateurs d'index GIN qui mettent en œuvre un comportement équivalent à un index B-tree.
PostgreSQL 9.6 utilise la version 1.0. PostgreSQL 10 utilise la version 1.2. Toutes les autres versions utilisent la version 1.3.
btree_gist Fournit des classes d'opérateurs d'index GiST qui mettent en œuvre un comportement équivalent à un index B-tree.
PostgreSQL 9.6 utilise la version 1.2. PostgreSQL 10, 11, 12 et 13 utilisent la version 1.5. PostgreSQL 14 utilise la version 1.6.
chkpass Met en œuvre un type de données chkpass conçu pour stocker les mots de passe chiffrés.
PostgreSQL 9.6 et 10 utilisent la version 1.0. Non compatible avec les autres versions.
citext Fournit un type de chaîne de caractères citext non sensible à la casse.
PostgreSQL 9.6 utilise la version 1.3. PostgreSQL 10 utilise la version 1.4. PostgreSQL 11 utilise la version 1.5. PostgreSQL 12, 13 et 14 utilisent la version 1.6.
cube Met en œuvre un type de données cube permettant de représenter des cubes multidimensionnels.
PostgreSQL 9.6 et 10 utilisent la version 1.2. PostgreSQL 11 utilise la version 1.3. PostgreSQL 12 et 13 utilisent la version 1.4. PostgreSQL 14 utilise la version 1.5.
hstore Met en œuvre le type de données hstore permettant de stocker des ensembles de paires clé/valeur au sein d'une seule valeur PostgreSQL.
PostgreSQL 9.6 et 10 utilisent la version 1.4. PostgreSQL 11 utilise la version 1.5. PostgreSQL 12 utilise la version 1.6. PostgreSQL 13 utilise la version 1.7. PostgreSQL 14 utilise la version 1.8.
isn Fournit des types de données pour certaines normes internationales de numérotation de produits.
PostgreSQL 9.6 et 10 utilisent la version 1.1. Toutes les autres versions utilisent la version 1.2.
ip4r Fournit des types de données pour les adresses IPv4/v6, les plages d'adresses IP et la compatibilité avec les index.
PostgreSQL utilise la version 2.4.2.
ltree Met en œuvre un type de données ltree permettant de représenter les libellés de données stockées dans une structure hiérarchique en forme d'arborescence.
PostgreSQL 9.6, 10, 11 et 12 utilisent la version 1.1. PostgreSQL 13 et 14 utilisent la version 1.2.
lo Assistance pour la gestion d'objets volumineux (également appelés LO ou BLOB).
Cloud SQL pour PostgreSQL utilise la version 1.1.
postgresql-hll Introduit un nouveau type de données, hll, qui est une structure de données HyperLogLog. Consultez également la section postgresql-hll dans ce document.
Cloud SQL pour PostgreSQL utilise la version 2.16.
prefix Fournit une mise en correspondance par préfixe ainsi que la compatibilité avec les index.
Cloud SQL pour PostgreSQL utilise la version 1.2.0.

Extensions de langages

Extension Description
plpgsql Langage de procédure chargeable permettant de créer des fonctions, des procédures et des déclencheurs. Vous pouvez également utiliser ce langage pour exécuter directement du code dans des blocs DO.
Cloud SQL pour PostgreSQL utilise la version 1.0.
plv8 Fournit un langage procédural pour l'activation de JavaScript.
Cloud SQL pour PostgreSQL utilise la version 3.2.2, qui utilise à son tour la version 11.5 du moteur JavaScript V8.

Extensions diverses

Extension Description
amcheck Fournit des fonctions permettant de vérifier la cohérence logique de la structure des relations, permettant ainsi à l'application pg_amcheck de voir si elles ont été corrompues.
auto_explain Permet la journalisation automatique des plans d'exécution des instructions lentes (à des fins de dépannage, etc…). Fournit un moyen automatisé d'exécuter les fonctionnalités de la commande EXPLAIN. Consultez également la section auto_explain dans ce document.
autoinc Fournit des fonctions permettant d'incrémenter automatiquement des champs. Ce déclencheur stocke la valeur suivante d'une séquence dans un champ d'entiers.
Cloud SQL pour PostgreSQL utilise la version 1.0.
bloom Fournit une méthode pour accéder aux index basés sur des filtres de Bloom. Un filtre de Bloom est une structure de données économe en espace que vous pouvez utiliser pour vérifier si un élément fait partie d'un ensemble.
Cloud SQL pour PostgreSQL utilise la version 1.0.
dblink Fournit des fonctions permettant de se connecter aux bases de données PostgreSQL depuis une session de base de données. Consultez également la section dblink dans ce document.
Cloud SQL pour PostgreSQL utilise la version 1.2.
decoderbufs Un décodeur logique PostgreSQL qui fournit des données de sortie sous forme de tampons de protocole, adaptées à Debezium.
dict_int Modèle de dictionnaire complémentaire destiné à la recherche en texte intégral et qui contrôle l'indexation des entiers.
Cloud SQL pour PostgreSQL utilise la version 1.0.
earthdistance Fournit deux manières de calculer les distances orthodromiques sur la surface de la Terre.
Cloud SQL pour PostgreSQL utilise la version 1.1.
fuzzystrmatch Fournit plusieurs fonctions permettant de déterminer les similitudes et la distance entre les chaînes.
Cloud SQL pour PostgreSQL utilise la version 1.1.
google_ml_integration Génère des embeddings pour traduire des requêtes de texte en vecteurs numériques à l'aide d'un grand modèle de langage (LLM).
Cloud SQL pour PostgreSQL utilise la version 1.2.
insert_username Fournit des fonctions permettant de stocker le nom de l'utilisateur actuel dans un champ de texte. Cette fonction vous permet de savoir qui a modifié une ligne dans une table de base de données pour la dernière fois.
Cloud SQL pour PostgreSQL utilise la version 1.0.
intagg Fournit un agrégateur d'entiers et un énumérateur.
Cloud SQL pour PostgreSQL utilise la version 1.1.
intarray Fournit un ensemble de fonctions et d'opérateurs permettant de manipuler des tableaux d'entiers sans valeurs vides et d'y effectuer des recherches indexées.
PostgreSQL 9.6, 10, 11 et 12 utilisent la version 1.2. PostgreSQL 13 utilise la version 1.3. PostgreSQL 14 utilise la version 1.5.
moddatetime Fournit des fonctions permettant de stocker l'heure actuelle dans un champ timestamp. Vous pouvez effectuer le suivi de la dernière modification d'une ligne d'une table de base de données.
Cloud SQL pour PostgreSQL utilise la version 1.0.
oracle_fdw Fournit un wrapper de données étranger (fdw) pour accéder facilement et efficacement aux bases de données Oracle.
Cloud SQL pour PostgreSQL utilise la version 1.2.
orafce Fournit des fonctions et des opérateurs qui émulent un sous-ensemble de fonctions et de packages à partir d'une base de données Oracle. Utilisez ces fonctions pour transférer des applications Oracle vers PostgreSQL.
PostgreSQL 9.6 et 10 utilisent la version 4.6.1. PostgreSQL 11 et versions ultérieures utilisent la version 4.7.0.
pageinspect Inspecte le contenu des pages de base de données à un niveau inférieur. Consultez également la section pageinspect dans ce document.
PostgreSQL 9.6 utilise la version 1.5. PostgreSQL 10 utilise la version 1.6. PostgreSQL 11 et 12 utilisent la version 1.7. PostgreSQL 13 et 14 utilisent la version 1.8.
pgAudit Collecte les données d'audit.

Les valeurs que vous pouvez définir pour les fichiers de journaux d'audit pour toutes les versions de pgAudit sont READ, WRITE, FUNCTION, ROLE, DDL, MISC et ALL. Pour les versions 1.4.2 à 1.6.1, vous pouvez également définir la valeur de MISC_SET.

Pour plus d'informations sur l'utilisation de cette extension avec Cloud SQL, consultez la page Effectuer un audit PostgreSQL à l'aide de pgAudit.

pg_background Vous permet d'exécuter des commandes arbitraires dans un nœud de calcul en arrière-plan.
Cloud SQL pour PostgreSQL utilise la version 1.2.
pg_bigm Active la recherche en texte intégral et un index bigramme pour une recherche en texte intégral plus rapide. Consultez également la section pg_bigm dans ce document.
pg_buffercache Fournit une solution permettant d'examiner en temps réel l'activité du cache des tampons partagé.
PostgreSQL 9.6 utilise la version 1.2. PostgreSQL 10, 11, 12, 13 et 14 utilisent la version 1.3.
pg_cron Fournit un planificateur de tâches Cron. Cette extension permet à la syntaxe Cron de planifier des commandes PostgreSQL directement à partir de la base de données. Pour en savoir plus sur l'extension, consultez la section pg_cron dans ce document.
Les versions 10 et ultérieures de PostgreSQL utilisent la version 1.6.0.
pgcrypto Fournit des fonctions de chiffrement pour PostgreSQL.
Cloud SQL pour PostgreSQL utilise la version 1.3.
pglogical Fournit une réplication logique pour PostgreSQL. Consultez la section Configurer la réplication logique et le décodage.
Cloud SQL pour PostgreSQL utilise la version 2.4.3.
pgfincore Ensemble de fonctions permettant de gérer les pages de la mémoire cache du disque du système d'exploitation à partir de PostgreSQL. Consultez également la section pgfincore dans ce document.
Cloud SQL pour PostgreSQL utilise la version 1.3.1.
pg_freespacemap Examine la carte de l'espace libre (FSM, Free Space Map). Consultez également la section pg_freespacemap dans ce document.
Cloud SQL pour PostgreSQL utilise la version 1.2.
pg_hint_plan Vous permet d'améliorer les plans d'exécution PostgreSQL à l'aide d'optimisations, qui sont des descriptions simples dans les commentaires SQL. Consultez également la section pg_hint_plan dans ce document.
pgoutput Ce plug-in est utilisé par la réplication logique pour la capture de données modifiées. pgoutput est un plug-in par défaut et est donc compatible avec toutes les versions de Cloud SQL pour PostgreSQL.
pg_ivm Vous permet de mettre à jour les vues matérialisées dans lesquelles seules les modifications incrémentielles sont calculées et appliquées aux vues plutôt que de recalculer le contenu à partir de zéro.
Les versions 13 et ultérieures de PostgreSQL sont compatibles avec la version 1.9.
pg_partman Permet de créer et de gérer des ensembles de partitions de tables basés sur l'heure et le séries. Consultez également la section pg_partman dans ce document.
Les versions PostgreSQL 14 et ultérieures sont compatibles avec la version 5.0.1, tandis que les versions PostgreSQL antérieures à la version 14 ne sont compatibles qu'avec la version 4.7.4.
pg_prewarm Fournit une solution pratique permettant de charger des données relationnelles dans le cache des tampons du système d'exploitation ou dans le cache des tampons PostgreSQL.
PostgreSQL 9.6 et 10 utilisent la version 1.1. PostgreSQL 11, 12, 13 et 14 utilisent la version 1.2.
pg_proctab Permet d'utiliser pg_top avec Cloud SQL pour PostgreSQL et de générer des rapports à partir de la table des processus du système d'exploitation. Consultez également la section pg_proctab dans ce document.
pg_repack Permet de supprimer les données volumineuses des tables et des index. Vous pouvez éventuellement effectuer un CLUSTER en ligne (classer les tables par index de cluster). Consultez également la section pg_repack dans ce document.
Cloud SQL pour PostgreSQL utilise la version 1.5.0.
pgrowlocks Fournit des informations de verrouillage de ligne pour la table spécifiée.
Cloud SQL pour PostgreSQL utilise la version 1.2.
pgstattuple Fournit plusieurs fonctions permettant d'obtenir des statistiques au niveau des tuples.
PostgreSQL 9.6 utilise la version 1.4. Toutes les autres versions utilisent la version 1.5.
pg_similarity Permet d'effectuer des requêtes de similarité sur PostgreSQL.
Cloud SQL pour PostgreSQL utilise la version 1.0.
pg_squeeze Supprime l'espace inutilisé d'une table et utilise éventuellement un index pour trier les enregistrements ou les lignes (tuples) de la table. Pour en savoir plus sur cette extension, consultez la section pg_squeeze dans ce document.
Les versions 11 et ultérieures de PostgreSQL utilisent la version 1.5.
pg_stat_statements Fournit un moyen de suivre les statistiques d'exécution de toutes les instructions SQL exécutées.
PostgreSQL 9.6 utilise la version 1.4. PostgreSQL 10 et 11 utilisent la version 1.6. PostgreSQL 12 utilise la version 1.7. PostgreSQL 13 utilise la version 1.8. PostgreSQL 14 utilise la version 1.9.
pgTAP Fournit un framework de tests unitaires pour PostgreSQL, écrit en PL/pgSQL et PL/SQL.
Cloud SQL pour PostgreSQL utilise la version 1.3.0.
pg_trgm Fournit des fonctions et des opérateurs permettant de déterminer la similarité des textes alphanumériques en fonction de la correspondance de trigrammes, ainsi que des classes d'opérateur d'index compatibles avec la recherche rapide de chaînes similaires.
PostgreSQL 9.6 et 10 utilisent la version 1.3. PostgreSQL 11 et 12 utilisent la version 1.4. PostgreSQL 13 utilise la version 1.5. PostgreSQL 14 utilise la version 1.6.
pgtt

Crée et gère des tables temporaires globales DB2 ou de type Oracle dans une base de données PostgreSQL.
Cloud SQL pour PostgreSQL utilise la version 3.0.

pgvector

Extension Open Source permettant de stocker et de rechercher des embeddings dans les bases de données PostgreSQL.
Les versions 13 et ultérieures de PostgreSQL sont compatibles avec la version 0.8.0, la version 12 de PostgreSQL est compatible avec la version 0.7.4 et la version 11 de PostgreSQL est compatible avec la version 0.5.1.

pg_visibility Permet d'examiner la carte de visibilité (VM, Visibility Map) et les informations de visibilité au niveau de la page d'une table. Consultez également la section pg_visibility dans ce document.
Cloud SQL pour PostgreSQL utilise la version 1.2.
pg_wait_sampling Collecte les statistiques d'échantillonnage des événements d'attente, et fournit des données d'attente pour les processus sur les serveurs. Cloud SQL pour PostgreSQL utilise la version 1.1.5.
PL/Proxy Gestionnaire de langages procéduraux autorisant les appels de procédure à distance entre les bases de données PostgreSQL, avec segmentation facultative. Consultez également la section PL/Proxy dans ce document.
Cloud SQL pour PostgreSQL 9.6 utilise la version 2.11.0.
postgres_fdw Permet de créer des wrappers de données étrangers au sein d'instances ou entre plusieurs instances. Consultez également la section postgres_fdw dans ce document.
PostgreSQL 9.6, 10, 11, 12 et 13 utilisent la version 1.0. PostgreSQL 14 utilise la version 1.1.
postgresql_anonymizer

Masquer ou remplacer les informations personnelles ou sensibles d'une base de données PostgreSQL Pour en savoir plus, consultez la section postgresql_anonymizer.

Cloud SQL pour PostgreSQL utilise la version 1.0.0.

postgresql-hll

Fournit une structure de données HyperLogLog (hll) qui estime la cardinalité d'un ensemble.

Cloud SQL pour PostgreSQL utilise la version 2.18.

rdkit Collection de logiciels de chémoinformatique et de machine learning. Vous pouvez utiliser cette extension pour comparer, manipuler et identifier des structures moléculaires.
Cloud SQL pour PostgreSQL utilise la version 4.2.0.
refint Inclut des fonctions permettant de vérifier les restrictions de clé étrangère, la table de référence et la table référencée. Cette extension illustre également l'interface de programmation de serveur (SPI). Cloud SQL pour PostgreSQL utilise la version 1.0.
sslinfo Fournit des informations sur le certificat SSL fourni par le client actuel lors de la connexion à l'instance.
Cloud SQL pour PostgreSQL utilise la version 1.2.
tablefunc Inclut des fonctions diverses renvoyant des tables (plusieurs lignes).
Cloud SQL pour PostgreSQL utilise la version 1.0.
tcn Fournit une fonction de déclencheur qui informe les écouteurs des modifications apportées au contenu des tables de base de données.
Cloud SQL pour PostgreSQL utilise la version 1.0.
temporal_tables Assure une prise en charge des tables temporelles. Une table temporelle enregistre la période pendant laquelle une ligne est valide du point de vue de la base de données.
Cloud SQL pour PostgreSQL utilise la version 1.2.2
tsm_system_rows Fournit la méthode d'échantillonnage de table SYSTEM_ROWS, qui peut s'utiliser dans la clause TABLESAMPLE d'une commande SELECT.
Cloud SQL pour PostgreSQL utilise la version 1.0.
tsm_system_time Fournit la méthode d'échantillonnage de table SYSTEM_TIME, qui peut s'utiliser dans la clause TABLESAMPLE d'une commande SELECT.
Cloud SQL pour PostgreSQL utilise la version 1.0.
unaccent Dictionnaire de recherche de texte qui supprime les accents (signes diacritiques) des lexèmes.
Cloud SQL pour PostgreSQL utilise la version 1.1.
uuid-ossp Fournit des fonctions permettant de générer des identifiants uniques universels (UUID) à l'aide de l'un des différents algorithmes standards disponibles.
Cloud SQL pour PostgreSQL utilise la version 1.1.

En savoir plus sur certaines extensions PostgreSQL

Cette section décrit plus en détail certaines des extensions PostgreSQL compatibles des tableaux ci-dessus.

auto_explain

Pour commencer à utiliser cette extension sur une instance, définissez l'option cloudsql.enable_auto_explain sur on. Pour en savoir plus sur le paramétrage des options et pour découvrir les options compatibles avec cette extension, consultez la page Configurer des options de base de données.

Pour afficher les données et les événements de journalisation associés aux journaux des plans d'exécution activés par cette extension, consultez la documentation Cloud Logging.

Par ailleurs, pour un utilisateur disposant du rôle cloudsqlsuperuser (uniquement), vous pouvez utiliser la commande load pour charger cette extension pendant une session.

Dans une session de base de données, vous pouvez utiliser cette extension pour vous connecter aux bases de données PostgreSQL et exécuter des requêtes.

Actuellement, cette extension fonctionne pour deux instances Cloud SQL à connectivité IP privée au sein du même réseau VPC, ou pour des bases de données croisées au sein de la même instance.

Pour en savoir plus, consultez la section dblink dans la documentation PostgreSQL.

Pour vous connecter à des bases de données ou pour vous connecter à la même instance qu'un autre utilisateur, vous devez spécifier un mot de passe. Voici un extrait de code à titre d'exemple (à ne pas utiliser en production) :


  SELECT * FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select id, name from table' \
  ) AS t(id int, name text);

Autrement, pour configurer uniquement une connexion, voici un autre exemple de code (à ne pas utiliser en production) :

  SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');

Pour vous connecter à la même instance en utilisant l'identité du même utilisateur, vous pouvez vous connecter sans mot de passe. Par exemple :

  1. Définissez l'indicateur de base de données suivant pour activer les connexions locales sans mot de passe.
    cloudsql.allow_passwordless_local_connections

  2. Connectez-vous sans spécifier d'hôte, ce qui implique une connexion à la même instance. Voici un exemple :

    SELECT *
      FROM dblink('dbname=finance user=alice',
                  'select income from revenue')
        AS revenue(income integer);
    

    Le résultat devrait ressembler à ceci :

          income
          --------
          1000
          (1 row)
    

De plus, pour vous connecter à d'autres bases de données au sein de la même instance, vous ne pouvez pas définir l'hôte sur "localhost" ou sur 127.0.0.1. Vous devez utiliser l'adresse IP indiquée pour votre instance dans Google Cloud Console.

Consultez également les sections postgres_fdw et PL/Proxy dans ce document.

pageinspect

Cette extension inspecte le contenu des pages de base de données à un niveau inférieur. Pour en savoir plus, consultez la section pageinspect dans la documentation PostgreSQL.

pg_bigm

Cette extension active la recherche en texte intégral et permet l'utilisation d'un index bigramme pour une recherche en texte intégral plus rapide.

Pour commencer à utiliser cette extension sur une instance, définissez l'option cloudsql.enable_pg_bigm sur on. Les options suivantes sont également acceptées :

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_bigm.similarity_limit

Pour en savoir plus sur la définition des options et pour découvrir les options compatibles avec cette extension, consultez la page Configurer des options de base de données.

pg_cron

Pour commencer à utiliser pg_cron sur une instance, définissez l'option cloudsql.enable_pg_cron sur on. Pour en savoir plus sur la définition des options et pour découvrir les options compatibles avec cette extension, consultez la page Configurer des options de base de données.

Les tâches sont configurées en tant que nœuds de calcul d'arrière-plan. Vous devrez donc peut-être utiliser les techniques PostgreSQL standards (telles que l'option max_worker_processes) pour ajuster le nombre de nœuds de calcul en arrière-plan.

Pour cette extension, Cloud SQL est compatible avec le mode de nœud de calcul en arrière-plan, mais pas avec l'interface libpq. Par conséquent, cette extension ne nécessite pas d'authentification directe.

pgfincore

Cette extension contient des fonctions permettant de gérer les pages dans la mémoire cache du disque du système d'exploitation à partir de PostgreSQL. Pour plus d'informations, consultez la documentation consacrée à pgfincore.

pg_freespacemap

Cette extension examine la carte de l'espace libre (FSM, Free Space Map). Pour en savoir plus, consultez la section pg_freespacemap dans la documentation PostgreSQL.

pg_hint_plan

Pour commencer à utiliser cette extension sur une instance, définissez l'option cloudsql.enable_pg_hint_plan sur on. Pour en savoir plus sur le paramétrage des options et pour découvrir les options compatibles avec cette extension, consultez la page Configurer des options de base de données.

Sinon, pour un utilisateur ne disposant que du rôle cloudsqlsuperuser, vous pouvez utiliser la commande load pour charger cette extension pendant une session.

pg_partman

Cette extension vous permet de créer et de gérer des ensembles de partitions de tables basés sur l'heure et les séries.

Dans Cloud SQL, cette extension n'inclut pas le nœud de calcul en arrière-plan pour la maintenance automatique des partitions. À la place, vous pouvez par exemple utiliser Cloud Scheduler pour orchestrer la maintenance en appelant des fonctions de maintenance à intervalles réguliers.

pg_proctab

Voici les étapes à suivre pour utiliser l'extension pg_proctab afin d'activer l'utilitaire pg_top :

  1. Dans l'outil psql, exécutez la commande CREATE EXTENSION pour pg_proctab.
  2. Téléchargez et exécutez pg_top.
  3. Lorsque vous vous connectez à une instance Cloud SQL pour PostgreSQL, ajoutez l'option -r afin de pouvoir vous connecter à une base de données distante et obtenir des métriques.

Les métriques suivantes à l'échelle de l'instance, qui sont comprises dans le résultat, incluent l'utilisation par d'autres agents et services de l'instance :

  • Charge moyenne
  • États des processeurs (% utilisateur, nice, système, inactif et iowait)
  • Mémoire (utilisée, libre et mise en cache)

pg_repack

Cette extension vous permet de supprimer les données volumineuses des tables et des index. Vous pouvez éventuellement utiliser cette extension pour effectuer un CLUSTER en ligne (classer les tables par index de cluster). Pour en savoir plus, consultez la documentation consacrée à pg_repack. En outre, pour utiliser cette extension dans Cloud SQL, une procédure spéciale est nécessaire afin d'ajouter des droits à un utilisateur.

Si un utilisateur ne disposant pas du rôle cloudsqlsuperuser souhaite utiliser une extension, vous devez lui accorder les droits de cloudsqlsuperuser. Pour en savoir plus, consultez Conditions requises pour les droits de super-utilisateur. L'exemple suivant utilise la commande GRANT pour ajouter les droits nécessaires.

Exemple d'ajout de droits

Par exemple, csuper1 correspond à un utilisateur cloudsqlsuperuser et testdb est une base de données appartenant à testuser. Pour créer l'extension pg_repack dans testdb, exécutez initialement les commandes suivantes :

  1. Connectez-vous à testdb en tant qu'utilisateur cloudsqlsuperuser :

    psql -U csuper1 -d testdb;
    
  2. Attribuez le droit propriétaire de la base de données, testuser, à l'utilisateur csuper1 :

    GRANT testuser TO csuper1;
    
  3. Créez l'extension :

    CREATE EXTENSION pg_repack;
    
  4. Exécutez la commande pg_repack sur une table, par exemple t1 dans testdb, en tant qu'utilisateur csuper1 :

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. Une fois le job pg_repack terminé, révoquez l'attribution effectuée à l'étape 2 :

     REVOKE testuser FROM csuper1;
    

La commande pg_repack peut échouer avec l'erreur suivante :
"ERROR: query failed: SSL SYSCALL error: EOF detected"

Si cette erreur se produit, essayez de définir une valeur plus petite pour les messages keepalive TCP, puis exécutez la commande pg_repack. Pour en savoir plus, consultez la section Délai avant expiration des connexions (depuis Compute Engine).

pg_squeeze

Cette extension supprime l'espace inutilisé d'une table et utilise éventuellement un index pour trier les tuples de la table. Pour commencer à utiliser cette extension sur une instance, définissez l'option cloudsql.enable_pg_squeeze sur on.

Cette extension permet également le décodage logique en écrivant des informations supplémentaires dans le journal WAL (write-ahead log). Pour activer cette fonctionnalité pour l'extension, définissez le paramètre de configuration wal_level sur logical ou une valeur supérieure en définissant l'option cloudsql.logical_decoding sur on.

L'extension nécessite de définir une valeur pour l'option max_replication_slots. Si vous n'avez pas spécifié de valeur pour cette option, définissez la valeur sur 1. Sinon, ajoutez 1 à la valeur définie pour l'indicateur.

Pour en savoir plus sur la définition des options et pour découvrir les options compatibles avec cette extension, consultez la page Configurer des options de base de données.

pgtt

Pour commencer à utiliser cette extension sur une instance, définissez l'option pgtt.enabled sur on. Pour en savoir plus sur le paramétrage des indicateurs et pour découvrir les indicateurs compatibles avec cette extension, consultez la page Configurer des indicateurs de base de données.

pg_visibility

Permet d'examiner la carte de visibilité (VM, Visibility Map) et les informations de visibilité au niveau de la page d'une table. Pour en savoir plus, consultez la section pg_visibility dans la documentation PostgreSQL.

PL/Proxy

Cette extension est un gestionnaire de langages procéduraux autorisant les appels de procédure à distance entre des bases de données PostgreSQL, avec une segmentation facultative.

Pour en savoir plus, consultez la documentation PL/Proxy.

Pour se connecter, les instances cibles doivent se trouver dans le même réseau VPC que l'instance de connexion. Dans la console Google Cloud, vous ne pouvez pas choisir le bouton Autoriser uniquement les connexions SSL pour les instances de cluster.

De plus, pour vous connecter à d'autres bases de données au sein de la même instance, vous ne pouvez pas définir l'hôte sur "localhost" ou sur 127.0.0.1. Vous devez utiliser l'adresse IP indiquée pour votre instance dans Google Cloud Console.

Consultez également les sections postgres_fdw et dblink dans ce document.

postgresql_anonymizer

Pour commencer à utiliser cette extension sur une instance, définissez l'option cloudsql.enable_anon sur on. Pour en savoir plus sur le paramétrage des indicateurs et pour découvrir les indicateurs compatibles avec cette extension, consultez la page Configurer des indicateurs de base de données.

postgres_fdw

Cette extension permet d'exposer les tables d'autres bases de données PostgreSQL en tant que tables "Étrangères" dans la base de données actuelle. Ces tables sont alors disponibles, un peu comme s'il s'agissait de tables locales. Pour en savoir plus, consultez la section postgres_fdw dans la documentation PostgreSQL.

Cette extension fonctionne pour deux instances Cloud SQL à connectivité IP privée au sein du même réseau VPC, ou pour des bases de données croisées au sein de la même instance.

En outre, pour vous connecter à d'autres bases de données au sein de la même instance, vous ne pouvez pas définir l'hôte sur "localhost" ou sur 127.0.0.1. Vous devez utiliser l'adresse IP indiquée pour votre instance dans Google Cloud Console.

En outre, pour une instance dans laquelle des données étrangères sont stockées, vous pouvez choisir l'option Autoriser uniquement les connexions SSL dans la console Google Cloud. Vous ne pouvez pas choisir l'option Exiger des certificats clients de confiance. Seul un utilisateur cloudsqlsuperuser peut être propriétaire d'un wrapper de données étrangères postgres_fdw.

Consultez également les sections PL/Proxy et dblink dans ce document.

postgresql-hll

Cette extension introduit un nouveau type de données, hll, qui est une structure de données HyperLogLog. Pour en savoir plus, consultez la documentation consacrée à postgresql-hll.