Configura le estensioni PostgreSQL

Puoi estendere PostgreSQL raggruppando gli oggetti SQL in un pacchetto e utilizzandoli come unità. Questa pagina contiene informazioni sulla configurazione delle estensioni PostgreSQL supportate da Cloud SQL.

Utilizzare le estensioni PostgreSQL

Puoi installare solo le estensioni supportate da Cloud SQL. Per maggiori informazioni, consulta la pagina Estensioni PostgreSQL supportate da Cloud SQL.

Installare un'estensione

Prima di utilizzare un'estensione, installala:

Requisito per i privilegi di superuser

In Cloud SQL, le estensioni possono essere create solo dagli utenti che fanno parte del ruolo cloudsqlsuperuser. Quando crei una nuova istanza PostgreSQL, viene creato l'utente postgres predefinito (anche se devi impostare la password dell'utente). L'utente postgres predefinito fa parte del ruolo cloudsqlsuperuser. Per saperne di più, consulta la sezione Informazioni sugli utenti PostgreSQL.

Connessioni tra database

Le istanze di destinazione per le connessioni devono trovarsi nella stessa rete VPC dell'istanza di connessione.

Per le istanze cluster, non puoi scegliere l'opzione Richiedi certificati client attendibili nella consoleGoogle Cloud . Inoltre, per connetterti ai database all'interno della stessa istanza, non puoi impostare l'host su localhost o su 127.0.0.1. Devi invece utilizzare l'indirizzo IP mostrato per l'istanza nella console Google Cloud .

Richiedere assistenza per una nuova estensione

Non puoi creare estensioni personalizzate in Cloud SQL.

Per richiedere assistenza per un'estensione, fai clic su +1 sul problema aperto o crea un nuovo problema. Per un elenco dei problemi aperti di Cloud SQL e informazioni sulla creazione di nuovi problemi, consulta Cercare o creare problemi e richieste di funzionalità per prodotto.

Estensioni PostgreSQL supportate da Cloud SQL

Per informazioni sull'utilizzo di un'estensione specifica, consulta il link alla documentazione in una delle tabelle riportate di seguito.

Il supporto di Cloud SQL per le estensioni PostgreSQL può essere suddiviso nelle seguenti categorie:

PostGIS

L'estensione PostGIS è supportata per Cloud SQL per PostgreSQL per tutte le versioni principali.

La seguente tabella contiene le versioni dell'estensione PostGIS per ogni versione di Cloud SQL per PostgreSQL:

Versione di Cloud SQL per PostgreSQL Estensione PostGIS
PostgreSQL 9.6 3.2.5
PostgreSQL 10 3.2.5
PostgreSQL 11 3.2.5
PostgreSQL 12 3.4.4
PostgreSQL 13 3.5.2
PostgreSQL 14 3.5.2
PostgreSQL 15 3.5.2
PostgreSQL 16 3.5.2
PostgreSQL 17 3.5.2

Per una versione principale specifica di PostgreSQL, nel comando CREATE EXTENSION, puoi specificare una versione dell'estensione PostGIS utilizzando la clausola VERSION.

L'estensione PostGIS include quanto segue:

Per ulteriori informazioni, vedi Installazione di PostGIS.

Inoltre, Cloud SQL per PostgreSQL include la versione 3.6.2 dell'estensione pgRouting, che estende PostGIS. L'estensione pgRouting migliora l'elaborazione geospaziale tramite il routing e l'analisi della rete.

Puoi eseguire manualmente l'upgrade di PostGIS e delle relative estensioni alla versione più recente. Per scoprire di più sull'upgrade delle estensioni PostGIS, vedi Eseguire l'upgrade di PostGIS.

Estensioni dei tipi di dati

Estensione Descrizione
btree_gin Fornisce classi di operatori GIN di esempio che implementano un comportamento equivalente all'albero B.
PostgreSQL 9.6 utilizza la versione 1.0. PostgreSQL 10 utilizza la versione 1.2. PostgreSQL 11 e versioni successive utilizzano la versione 1.3.
btree_gist Fornisce classi di operatori di indice GiST che implementano un comportamento equivalente all'albero B.
PostgreSQL 9.6 utilizza la versione 1.2. PostgreSQL 10, 11, 12 e 13 utilizzano la versione 1.5. PostgreSQL 14 utilizza la versione 1.6. PostgreSQL 15 e versioni successive utilizzano la versione 1.7.
chkpass Implementa un tipo di dati chkpass progettato per l'archiviazione di password criptate.
PostgreSQL 9.6 e 10 utilizzano la versione 1.0. Non supportato per altre versioni.
citext Fornisce un tipo di stringa di caratteri senza distinzione tra maiuscole e minuscole citext.
PostgreSQL 9.6 utilizza la versione 1.3. PostgreSQL 10 utilizza la versione 1.4. PostgreSQL 11 utilizza la versione 1.5. PostgreSQL 12 e versioni successive utilizzano la versione 1.6.
cubo Implementa un tipo di dati cube per rappresentare i cubi multidimensionali.
PostgreSQL 9.6 e 10 utilizzano la versione 1.2. PostgreSQL 11 utilizza la versione 1.3. PostgreSQL 12 e 13 utilizzano la versione 1.4. PostgreSQL 14 e versioni successive utilizzano la versione 1.5.
hstore Implementa il tipo di dati hstore per archiviare insiemi di coppie chiave/valore all'interno di un singolo valore PostgreSQL.
PostgreSQL 9.6 e 10 utilizzano la versione 1.4. PostgreSQL 11 utilizza la versione 1.5. PostgreSQL 12 utilizza la versione 1.6. PostgreSQL 13 utilizza la versione 1.7. PostgreSQL 14 e versioni successive utilizzano la versione 1.8.
ip4r Fornisce tipi di dati per indirizzi IPv4/v6 e intervalli di indirizzi, oltre al supporto degli indici.
Cloud SQL per PostgreSQL utilizza la versione 2.4.2.
isn Fornisce tipi di dati per alcuni standard internazionali di numerazione dei prodotti.
PostgreSQL 9.6 e 10 utilizzano la versione 1.1. PostgreSQL 11 e versioni successive utilizzano la versione 1.2.
lo Supporto per la gestione di oggetti di grandi dimensioni (chiamati anche LO o BLOB).
Cloud SQL per PostgreSQL utilizza la versione 1.1.
ltree Implementa un tipo di dati ltree per rappresentare le etichette dei dati memorizzati in una struttura gerarchica ad albero.
PostgreSQL 9.6, 10, 11 e 12 utilizzano la versione 1.1. PostgreSQL 13, 14, 15 e 16 utilizzano la versione 1.2. PostgreSQL 17 utilizza la versione 1.3.
postgresql-hll Introduce un nuovo tipo di dati, hll, che è una struttura di dati HyperLogLog. Consulta anche postgresql-hll in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 2.18.
prefix Fornisce la corrispondenza dei prefissi, oltre al supporto dell'indice.
Cloud SQL per PostgreSQL utilizza la versione 1.2.0.

Estensioni di lingua

Estensione Descrizione
plpgsql Un linguaggio procedurale caricabile per la creazione di funzioni, procedure e trigger. Puoi anche utilizzare questo linguaggio per l'esecuzione diretta del codice nei blocchi DO.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
plv8 Fornisce un linguaggio procedurale per l'attivazione di JavaScript.
Cloud SQL per PostgreSQL utilizza la versione 3.2.2, che a sua volta utilizza V8 JavaScript motore versione 11.5.

Estensioni varie

Estensione Descrizione
amcheck Fornisce funzioni per verificare la coerenza logica della struttura delle relazioni, consentendo all'applicazione pg_amcheck di verificare la presenza di danneggiamenti.
auto_explain Consente la registrazione automatica dei piani di esecuzione delle istruzioni lente, per la risoluzione dei problemi e altro ancora. Fornisce un modo automatizzato per eseguire la funzionalità del comando EXPLAIN. Vedi anche auto_explain in questo documento.
autoinc Fornisce funzioni per incrementare automaticamente i campi. Questo trigger memorizza il valore successivo di una sequenza in un campo di numeri interi.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
bloom Fornisce un metodo per accedere agli indici in base ai filtri Bloom. Un filtro Bloom è una struttura di dati efficiente in termini di spazio che puoi utilizzare per verificare se un elemento fa parte di un insieme.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
dblink Fornisce funzioni per connettersi ai database PostgreSQL dall'interno di una sessione di database. Vedi anche dblink in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
decoderbufs Un decodificatore logico PostgreSQL che fornisce dati di output come buffer di protocollo, adattati per Debezium.
dict_int Un modello di dizionario aggiuntivo per la ricerca a testo intero che controlla l'indicizzazione dei numeri interi.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
earthdistance Fornisce due approcci per calcolare le distanze ortodromiche sulla superficie della Terra.
Cloud SQL per PostgreSQL utilizza la versione 1.1.
fuzzystrmatch Fornisce diverse funzioni per determinare le somiglianze e la distanza tra le stringhe.
PostgreSQL 9.6, 10, 11, 12, 13, 14 e 15 utilizzano la versione 1.1. PostgreSQL 16 e versioni successive utilizzano la versione 1.2
google_ml_integration Genera incorporamenti vettoriali per tradurre i prompt di testo in vettori numerici utilizzando un modello linguistico di grandi dimensioni (LLM).
PostgreSQL 12 e versioni successive utilizzano la versione 1.4.2. Non supportato per altre versioni.
insert_username Fornisce funzioni per memorizzare il nome dell'utente corrente in un campo di testo. Puoi utilizzare questo campo per monitorare chi ha modificato per ultimo una riga in una tabella di database.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
intagg Fornisce un aggregatore di numeri interi e un enumeratore.
Cloud SQL per PostgreSQL utilizza la versione 1.1.
intarray Fornisce un insieme di funzioni e operatori per manipolare array di numeri interi senza valori null ed eseguire ricerche indicizzate.
PostgreSQL 9.6, 10, 11 e 12 utilizzano la versione 1.2. PostgreSQL 13 utilizza la versione 1.3. PostgreSQL 14 e versioni successive utilizzano la versione 1.5.
moddatetime Fornisce funzioni per memorizzare l'ora corrente in un campo timestamp. Puoi utilizzarlo per monitorare l'ultima modifica di una riga in una tabella di database.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
oracle_fdw Fornisce un wrapper di dati esterni (fdw) per accedere ai database Oracle in modo semplice ed efficiente.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
orafce Fornisce funzioni e operatori che emulano un sottoinsieme di funzioni e pacchetti di un database Oracle. Utilizza queste funzioni per trasferire le applicazioni Oracle a PostgreSQL.
PostgreSQL 9.6 e 10 utilizzano la versione 3.25. PostgreSQL 11 e versioni successive utilizzano la versione 4.13.
pageinspect Ispeziona i contenuti delle pagine del database a un livello basso. Vedi anche pageinspect in questo documento.
PostgreSQL 9.6 utilizza la versione 1.5. PostgreSQL 10 utilizza la versione 1.6. PostgreSQL 11 e 12 utilizzano la versione 1.7. PostgreSQL 13 e 14 utilizzano la versione 1.8. PostgreSQL 15 utilizza la versione 1.11. PostgreSQL 16 e versioni successive utilizzano la versione 1.12.
pgAudit Raccoglie i dati di controllo.

I valori possibili da impostare per i file di audit log per tutte le versioni di pgAudit sono READ, WRITE, FUNCTION, ROLE, DDL, MISC e ALL. Per le versioni 1.4.2 e successive, puoi anche impostare il valore di MISC_SET.

Per saperne di più sull'utilizzo di questa estensione con Cloud SQL, consulta Controllo di PostgreSQL tramite pgAudit.

pg_background Consente di eseguire comandi arbitrari in un worker in background.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
pg_bigm Abilita la ricerca a testo intero e consente un indice di due grammi (bigramma) per una ricerca a testo intero più rapida. Vedi anche pg_bigm in questo documento.
pg_buffercache Fornisce un mezzo per esaminare ciò che accade nella cache del buffer condiviso in tempo reale.
PostgreSQL 9.6 utilizza la versione 1.2. PostgreSQL 10, 11, 12, 13, 14 e 15 utilizzano la versione 1.3. PostgreSQL 16 utilizza la versione 1.4. PostgreSQL 17 utilizza la versione 1.5.
pg_cron Fornisce uno scheduler di job basato su cron. Questa estensione consente la sintassi cron per pianificare i comandi PostgreSQL direttamente dal database. Per saperne di più sull'estensione, consulta la sezione pg_cron di questo documento.
Le versioni 10 e successive di PostgreSQL utilizzano la versione 1.6.4.
pgcrypto Fornisce funzioni crittografiche per PostgreSQL.
Cloud SQL per PostgreSQL utilizza la versione 1.3.
pglogical Fornisce la replica logica per PostgreSQL. Vedi Configurazione di replica e decodifica logiche.
Cloud SQL per PostgreSQL utilizza la versione 2.4.5.
pgfincore Un insieme di funzioni per gestire le pagine nella memoria della cache del disco del sistema operativo da PostgreSQL. Vedi anche pgfincore in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 1.3.1.
pg_freespacemap Esamina la mappa dello spazio libero (FSM). Consulta anche pg_freespacemap in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
pg_hint_plan Consente di migliorare i piani di esecuzione di PostgreSQL utilizzando gli hint, ovvero semplici descrizioni nei commenti SQL. Vedi anche pg_hint_plan in questo documento.
pgoutput Questo plug-in viene utilizzato dalla replica logica per Change Data Capture. pgoutput è un plug-in predefinito ed è pertanto supportato su tutte le versioni di Cloud SQL per PostgreSQL.
pg_ivm Consente di aggiornare le viste materializzate in cui vengono calcolate e applicate solo le modifiche incrementali alle viste anziché ricalcolare i contenuti da zero.
PostgreSQL 13 e versioni successive supportano la versione 1.9.
pg_partman Consente di creare e gestire set di partizioni di tabelle basati su tempo e seriali. Consulta anche pg_partman in questo documento.
Le versioni 14 e successive di PostgreSQL supportano la versione 5.2.4, mentre le versioni precedenti alla 14 supportano solo fino alla versione 4.7.4.
pg_prewarm Fornisce un modo pratico per caricare i dati delle relazioni nella cache del buffer del sistema operativo o nella cache del buffer di PostgreSQL.
PostgreSQL 9.6 e 10 utilizzano la versione 1.1. PostgreSQL 11 e versioni successive utilizzano la versione 1.2.
pg_proctab Consente di utilizzare pg_top con Cloud SQL per PostgreSQL e generare report dalla tabella dei processi del sistema operativo. Consulta anche pg_proctab in questo documento.
pg_repack Consente di rimuovere il bloat da tabelle e indici. Facoltativamente, consente di eseguire un CLUSTER online (ordina le tabelle in base all'indice del cluster). Vedi anche pg_repack in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 1.5.0.
pgrowlocks Fornisce informazioni sul blocco delle righe per la tabella specificata.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
pgstattuple Fornisce varie funzioni per ottenere statistiche a livello di tupla.
PostgreSQL 9.6 utilizza la versione 1.4. Tutte le altre versioni utilizzano la versione 1.5.
pg_similarity Fornisce il supporto per le query di similarità su PostgreSQL.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
pg_squeeze Rimuove lo spazio inutilizzato da una tabella e, facoltativamente, utilizza un indice per ordinare i record o le righe (tuple) della tabella. Per saperne di più su questa estensione, consulta pg_squeeze in questo documento.
PostgreSQL versione 11 e successive utilizzano la versione 1.5.
pg_stat_statements Fornisce un mezzo per monitorare le statistiche di esecuzione di tutte le istruzioni SQL eseguite.
PostgreSQL 9.6 utilizza la versione 1.4. PostgreSQL 10 e 11 utilizzano la versione 1.6. PostgreSQL 12 utilizza 1.7. PostgreSQL 13 utilizza la versione 1.8. PostgreSQL 14 utilizza la versione 1.9. PostgreSQL 15 e 16 utilizzano 1.10. PostgreSQL 17 utilizza 1.11.
pgTAP Fornisce un framework di test unitari per PostgreSQL, scritto in PL/pgSQL e PL/SQL.
Cloud SQL per PostgreSQL utilizza la versione 1.3.0.
pg_trgm Fornisce funzioni e operatori per determinare la somiglianza di testo alfanumerico in base alla corrispondenza di trigrammi, nonché classi di operatori di indice che supportano la ricerca rapida di stringhe simili.
PostgreSQL 9.6 e 10 utilizzano la versione 1.3. PostgreSQL 11 e 12 utilizzano la versione 1.4. PostgreSQL 13 utilizza 1.5. PostgreSQL 14 e versioni successive utilizzano la versione 1.6.
pgtt

Crea e gestisce tabelle temporanee globali in stile DB2 o Oracle in un database PostgreSQL.
PostgreSQL 9.6, 10 e 11 utilizzano la versione 3.0. PostgreSQL 12 e versioni successive utilizzano la versione 4.0.

pgvector

Un'estensione open source per archiviare e cercare vector embedding nei database PostgreSQL.
Le versioni 13 e successive di PostgreSQL supportano la versione 0.8.0, la versione 12 di PostgreSQL supporta fino alla versione 0.7.4 e la versione 11 di PostgreSQL supporta fino alla versione 0.5.1.

pg_visibility Fornisce un modo per esaminare la mappa della visibilità (VM) e le informazioni sulla visibilità a livello di pagina di una tabella. Vedi anche pg_visibility in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
pg_wait_sampling Raccoglie statistiche di campionamento degli eventi di attesa, fornendo dati sugli eventi di attesa per i processi sui server. Cloud SQL per PostgreSQL utilizza la versione 1.1.5.
PL/Proxy Gestore di linguaggi procedurali che consente chiamate di procedure remote tra database PostgreSQL, con sharding facoltativo. Vedi anche PL/Proxy in questo documento.
Cloud SQL per PostgreSQL utilizza la versione 2.11.0.
postgres_fdw Consente di creare wrapper di dati esterni all'interno delle istanze o tra le istanze. Vedi anche postgres_fdw in questo documento.
PostgreSQL 9.6, 10, 11, 12 e 13 utilizzano la versione 1.0. PostgreSQL 14 e versioni successive utilizzano la versione 1.1.
postgresql_anonymizer

Maschera o sostituisce le informazioni che consentono l'identificazione personale (PII) o i dati sensibili di un database PostgreSQL. Per ulteriori informazioni, consulta la sezione postgresql_anonymizer.

Cloud SQL per PostgreSQL utilizza la versione 1.0.0.

postgresql_hll

Fornisce una struttura di dati HyperLogLog (hll) che stima la cardinalità di un insieme.

Cloud SQL per PostgreSQL utilizza la versione 2.18.

rdkit Una raccolta di software di chemiinformatica e machine learning. Puoi utilizzare questa estensione per confrontare, manipolare e identificare strutture molecolari.
Cloud SQL per PostgreSQL utilizza la versione 4.6.1.
refint Include funzioni per controllare i vincoli chiave esterna, la tabella di riferimento e la tabella a cui viene fatto riferimento. Questa estensione mostra anche l' interfaccia di programmazione del server (SPI). Cloud SQL per PostgreSQL utilizza la versione 1.0.
sslinfo Fornisce informazioni sul certificato SSL fornito dal client corrente quando si è connesso all'istanza.
Cloud SQL per PostgreSQL utilizza la versione 1.2.
tablefunc Include varie funzioni che restituiscono tabelle (più righe).
Cloud SQL per PostgreSQL utilizza la versione 1.0.
tcn Fornisce una funzione di trigger che notifica agli ascoltatori le modifiche ai contenuti delle tabelle del database.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
tds_fdw Fornisce un wrapper di dati esterni (fdw) per accedere a database, come Microsoft SQL Server e Sybase, che utilizzano il protocollo Tabular Data Stream (TDS). Cloud SQL per PostgreSQL utilizza la versione 2.0.4.
temporal_tables Fornisce supporto per le tabelle temporali. Una tabella temporale registra il periodo di tempo in cui una riga è valida dal punto di vista del database.
Cloud SQL per PostgreSQL utilizza la versione 1.2.2.
tsm_system_rows Fornisce il metodo di campionamento delle tabelle SYSTEM_ROWS, che può essere utilizzato nella clausola TABLESAMPLE di un comando SELECT.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
tsm_system_time Fornisce il metodo di campionamento della tabella SYSTEM_TIME, che può essere utilizzato nella clausola TABLESAMPLE di un comando SELECT.
Cloud SQL per PostgreSQL utilizza la versione 1.0.
unaccent Un dizionario di ricerca di testo che rimuove gli accenti (segni diacritici) dai lessemi.
Cloud SQL per PostgreSQL utilizza la versione 1.1.
uuid-ossp Fornisce funzioni per generare identificatori univoci universali (UUID) utilizzando uno dei diversi algoritmi standard.
Cloud SQL per PostgreSQL utilizza la versione 1.1.

Scopri di più su alcune estensioni PostgreSQL

Questa sezione descrive ulteriori informazioni su alcune delle estensioni PostgreSQL supportate nelle tabelle precedenti.

auto_explain

Per iniziare a utilizzare questa estensione su un'istanza, imposta il flag cloudsql.enable_auto_explain su on. Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurare i flag di database.

Per visualizzare i dati di logging e gli eventi associati ai log dei piani di esecuzione abilitati da questa estensione, consulta la documentazione di Cloud Logging.

In alternativa, per un utente che ha (solo) il ruolo cloudsqlsuperuser, puoi utilizzare il comando load per caricare questa estensione per una sessione.

All'interno di una sessione di database, puoi utilizzare questa estensione per connetterti ai database PostgreSQL ed eseguire query.

Al momento, questa estensione funziona per due istanze Cloud SQL con IP privato all'interno della stessa rete VPC o per database incrociati all'interno della stessa istanza.

Per ulteriori informazioni, consulta dblink nella documentazione di PostgreSQL.

Per connetterti ai database o alla stessa istanza di un altro utente, devi specificare una password. A titolo di esempio (ma non per scopi di produzione), ecco uno snippet di codice:


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

In alternativa, per configurare solo una connessione, ecco uno snippet di codice a scopo esemplificativo (non per la produzione):

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

Per connetterti alla stessa istanza come stesso utente, puoi connetterti senza password. Ad esempio:

  1. Imposta il seguente flag di database per attivare le connessioni locali senza una password
    cloudsql.allow_passwordless_local_connections

  2. Connettiti senza specificare un host, il che implica la connessione alla stessa istanza. Ecco un esempio:

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

    Il risultato potrebbe essere simile al seguente:

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

Per connetterti ai database all'interno della stessa istanza, non puoi impostare l'host su localhost o su 127.0.0.1. Devi invece utilizzare l'indirizzo IP mostrato per la tua istanza nella console Google Cloud .

Vedi anche postgres_fdw e PL/Proxy in questo documento.

pageinspect

Questa estensione esamina i contenuti delle pagine del database a un livello basso. Per saperne di più, consulta pageinspect nella documentazione di PostgreSQL.

pg_bigm

Questa estensione consente la ricerca a testo intero e un indice di due grammi (bigrammi) per una ricerca a testo intero più rapida.

Per iniziare a utilizzare questa estensione su un'istanza, imposta il flag cloudsql.enable_pg_bigm su on. Sono supportati anche i seguenti flag:

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

Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurare i flag di database.

pg_cron

Per iniziare a utilizzare pg_cron su un'istanza, imposta il flag cloudsql.enable_pg_cron su on. Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurare i flag di database.

I job sono configurati come worker in background, quindi potresti dover utilizzare tecniche PostgreSQL standard (come il flag max_worker_processes) per regolare il numero di questi worker in background.

Per questa estensione, Cloud SQL supporta la modalità worker in background, ma non l'interfaccia libpq. Pertanto, non è richiesta l'autenticazione attendibile che coinvolge direttamente questa estensione.

pgfincore

Questa estensione contiene funzioni per la gestione delle pagine nella memoria cache del disco del sistema operativo da PostgreSQL. Per saperne di più, consulta la documentazione di pgfincore.

pg_freespacemap

Questa estensione esamina la mappa dello spazio libero (FSM). Per saperne di più, consulta pg_freespacemap nella documentazione di PostgreSQL.

pg_hint_plan

Per iniziare a utilizzare questa estensione su un'istanza, imposta il flag cloudsql.enable_pg_hint_plan su on. Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurare i flag di database.

In alternativa, solo per un utente con il ruolo cloudsqlsuperuser, puoi utilizzare il comando load per caricare questa estensione per una sessione.

pg_partman

Questa estensione consente di creare e gestire set di partizioni di tabelle basati su intervalli di tempo e numeri di serie.

In Cloud SQL, questa estensione non include il worker in background per la manutenzione automatica delle partizioni. Puoi invece utilizzare, ad esempio, Cloud Scheduler per gestire la manutenzione chiamando le funzioni di manutenzione a intervalli regolari.

pg_proctab

Di seguito sono riportati i passaggi per utilizzare l'estensione pg_proctab per attivare l'utilità pg_top:

  1. Nello strumento psql, esegui il comando CREATE EXTENSION per pg_proctab.
  2. Scarica ed esegui pg_top.
  3. Quando ti connetti a un'istanza Cloud SQL per PostgreSQL, aggiungi l'opzione -r per connetterti a un database remoto e ottenere metriche.

Le seguenti metriche a livello di istanza, incluse nell'output, includono l'utilizzo da parte di altri agenti e servizi di supporto nell'istanza:

  • Carico medio
  • Stati della CPU (% utente, nice, sistema, idle e iowait)
  • Memoria (utilizzata, libera e memorizzata nella cache)

pg_repack

Questa estensione ti consente di rimuovere il bloat da tabelle e indici. Se vuoi, puoi utilizzare questa estensione per eseguire un'operazione CLUSTER online (ordina le tabelle in base all'indice del cluster). Per saperne di più, consulta la documentazione di pg_repack. Inoltre, per l'utilizzo di questa estensione in Cloud SQL, è necessaria una procedura speciale per aggiungere privilegi a un utente.

Se un utente al di fuori del ruolo cloudsqlsuperuser vuole utilizzare un'estensione, devi concedergli i privilegi cloudsqlsuperuser. Per ulteriori informazioni, consulta la sezione Requisito per i privilegi di superutente di questo documento. Il seguente esempio utilizza il comando GRANT per aggiungere i privilegi necessari.

Esempio di aggiunta di privilegi

Ai fini dell'esempio riportato di seguito, csuper1 è un cloudsqlsuperuser e testdb è un database di proprietà di testuser. Per creare l'estensione pg_repack in testdb, esegui inizialmente questi comandi:

  1. Connettiti a testdb come cloudsqlsuperuser:

    psql -U csuper1 -d testdb;
    
  2. Concedi al proprietario del database, ovvero testuser,, l'accesso a csuper1:

    GRANT testuser TO csuper1;
    
  3. Crea l'estensione:

    CREATE EXTENSION pg_repack;
    
  4. Esegui il comando pg_repack su una tabella, ad esempio t1 in testdb, come csuper1:

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. Al termine del job pg_repack, revoca la concessione eseguita nel passaggio 2:

     REVOKE testuser FROM csuper1;
    

Il comando pg_repack potrebbe non riuscire e generare il seguente errore:
"ERROR: query failed: SSL SYSCALL error: EOF detected"

Se si verifica questo errore, prova a impostare i keepalive TCP su un valore più piccolo, quindi esegui il comando pg_repack. Per saperne di più, consulta Timeout delle connessioni (da Compute Engine).

pg_squeeze

Questa estensione rimuove lo spazio inutilizzato da una tabella e, facoltativamente, utilizza un indice per ordinare le tuple della tabella. Per iniziare a utilizzare l'estensione su un'istanza, imposta il flag cloudsql.enable_pg_squeeze su on.

Questa estensione supporta anche la decodifica logica scrivendo informazioni aggiuntive nel log write-ahead (WAL). Per attivare questa funzionalità per l'estensione, imposta il parametro di configurazione wal_level su logical o su un valore superiore impostando il flag cloudsql.logical_decoding su on.

L'estensione richiede l'impostazione di un valore per il flag max_replication_slots. Se non hai specificato un valore per questo flag, imposta il valore su 1. In caso contrario, aggiungi 1 al valore impostato per il flag.

Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurare i flag di database.

pgtt

Per iniziare a utilizzare questa estensione su un'istanza, imposta il flag pgtt.enabled su on. Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurazione dei flag di database.

pg_visibility

Questa estensione consente di esaminare la mappa della visibilità (VM) e le informazioni sulla visibilità a livello di pagina di una tabella. Per saperne di più, consulta pg_visibility nella documentazione di PostgreSQL.

PL/Proxy

Questa estensione è un gestore di linguaggi procedurali che consente chiamate di procedure remote tra database PostgreSQL, con sharding facoltativo.

Per saperne di più, consulta la documentazione di PL/Proxy.

Le istanze di destinazione per le connessioni devono trovarsi nella stessa rete VPC dell'istanza di connessione. Inoltre, non puoi scegliere, nella consoleGoogle Cloud , il pulsante Consenti solo connessioni SSL per le istanze cluster.

Per connetterti ai database all'interno della stessa istanza, non puoi impostare l'host su localhost o su 127.0.0.1. Devi invece utilizzare l'indirizzo IP mostrato per la tua istanza nella console Google Cloud .

Vedi anche postgres_fdw e dblink in questo documento.

postgresql_anonymizer

Per iniziare a utilizzare questa estensione su un'istanza, imposta il flag cloudsql.enable_anon su on. Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, vedi Configurazione dei flag di database.

postgres_fdw

Questa estensione consente di esporre le tabelle di altri database PostgreSQL ("esterni") come tabelle "esterne" nel database corrente. Queste tabelle sono quindi disponibili per l'uso, quasi come se fossero tabelle locali. Per saperne di più, consulta postgres_fdw nella documentazione di PostgreSQL.

Questa estensione funziona per due istanze Cloud SQL con IP privato all'interno della stessa rete VPC o per database incrociati all'interno della stessa istanza.

Per connetterti ai database all'interno della stessa istanza, non puoi impostare l'host su localhost o su 127.0.0.1. Devi invece utilizzare l'indirizzo IP mostrato per l'istanza nella console Google Cloud .

Inoltre, per un'istanza in cui sono memorizzati dati esterni, puoi scegliere l'opzione Consenti solo connessioni SSL nella console Google Cloud . Non puoi scegliere l'opzione Richiedi certificati client attendibili. Solo cloudsqlsuperuser può essere il proprietario di un wrapper di dati esterni postgres_fdw.

Vedi anche PL/Proxy e dblink in questo documento.

postgresql-hll

Questa estensione introduce un nuovo tipo di dati, hll, che è una struttura di dati HyperLogLog. Per saperne di più, consulta la documentazione di postgresql-hll.