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 :
- Dans l'outil psql, exécutez la commande CREATE EXTENSION.
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 :
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
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 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. |
pgvector |
Extension Open Source permettant de stocker et de rechercher des embeddings dans les bases de données PostgreSQL. |
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 ( 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.
dblink
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.
Utiliser dblink pour se connecter avec un mot de passe
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');
Se connecter sans mot de passe à l'aide de dblink
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 :
Définissez l'indicateur de base de données suivant pour activer les connexions locales sans mot de passe.
cloudsql.allow_passwordless_local_connections
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 :
- Dans l'outil psql, exécutez la commande CREATE EXTENSION pour pg_proctab.
- Téléchargez et exécutez pg_top.
- 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 :
Connectez-vous à
testdb
en tant qu'utilisateurcloudsqlsuperuser
:psql -U csuper1 -d testdb;
Attribuez le droit propriétaire de la base de données,
testuser,
à l'utilisateurcsuper1
:GRANT testuser TO csuper1;
Créez l'extension :
CREATE EXTENSION pg_repack;
Exécutez la commande
pg_repack
sur une table, par exemplet1
danstestdb
, en tant qu'utilisateurcsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
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.