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.
Utilizza le estensioni PostgreSQL
Puoi installare solo le estensioni supportate da Cloud SQL. Per maggiori informazioni, consulta Estensioni PostgreSQL supportate da Cloud SQL.
Installare un'estensione
Prima di utilizzare un'estensione, installala:
- Nello strumento psql, esegui il comando CREATE EXTENSION.
Aggiorna un'estensione
Sebbene gli aggiornamenti di manutenzione di Cloud SQL per PostgreSQL installino automaticamente i file binari delle estensioni più recenti sul software sottostante dell'istanza, non aggiornano automaticamente il catalogo del database dell'estensione. Sei responsabile dell'aggiornamento manuale delle estensioni per assicurarti che utilizzino le versioni supportate più recenti.
Per determinare quali estensioni richiedono un aggiornamento, confronta la versione installata con l'ultima versione supportata elencata nelle tabelle Estensioni PostgreSQL supportate da Cloud SQL.
Connettiti al database ed esegui questo comando per visualizzare le versioni installate:
SELECT * FROM pg_extension;
Per aggiornare un'estensione all'ultima versione disponibile sulla tua istanza, utilizza il comando ALTER EXTENSION.
Connettiti all'istanza principale utilizzando un client di tua scelta, ad esempio Cloud SQL Studio o il client psql, ed esegui questo comando per ogni estensione che vuoi aggiornare:
ALTER EXTENSION EXTENSION_NAME UPDATE;
Se devi eseguire l'aggiornamento a una versione specifica, utilizza la seguente sintassi:
ALTER EXTENSION EXTENSION_NAME
UPDATE TO 'VERSION_NUMBER';
Requisito per i privilegi di super utente
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 automaticamente 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 Informazioni sugli utenti PostgreSQL.
Connessioni tra database
Le istanze target 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 .
Richiedi assistenza per una nuova estensione
Non puoi creare le tue estensioni in Cloud SQL.
Per richiedere assistenza per un'estensione, fai clic su +1 sul problema aperto o creane uno nuovo. Per un elenco dei problemi aperti di Cloud SQL e informazioni sulla creazione di nuovi problemi, consulta Cerca o crea segnalazioni di 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 in queste categorie:
PostGIS
L'estensione PostGIS è supportata per Cloud SQL per PostgreSQL per tutte le versioni principali.
La tabella seguente 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 |
| PostgreSQL 18 | 3.6.0 |
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:
postgispostgis_rasterpostgis_sfcgalpostgis_tiger_geocoderpostgis_topologyaddress_standardizeraddress_standardizer_data_us
Per saperne di più, consulta 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 l'upgrade manuale di PostGIS e delle relative estensioni all'ultima versione. Per scoprire di più sull'upgrade delle estensioni PostGIS, consulta Esegui 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 a quello di un B-tree. 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 a B-tree. 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, 16 e 17 utilizzano la versione 1.7. PostgreSQL 18 utilizza la versione 1.8. |
| 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, 13, 14, 15, 16 e 17 utilizzano la versione 1.6. PostgreSQL 18 utilizza la versione 1.8. |
| cube | Implementa un tipo di dati cube per rappresentare 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, 12, 13, 14, 15, 16 e 17 utilizzano la versione 1.2. PostgreSQL 18 utilizza la versione 1.3. |
| 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 archiviati in una struttura ad albero gerarchica. 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 degli indici. Cloud SQL per PostgreSQL utilizza la versione 1.2.0. |
Estensioni di linguaggio
| 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 la versione 11.5 del motore JavaScript V8. |
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 | Abilita il logging automatico dei piani di esecuzione delle istruzioni lente, per la risoluzione dei problemi e altro ancora. Fornisce un modo automatico per eseguire la funzionalità del comando EXPLAIN. Consulta 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 intero. 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 è membro 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 del database. Consulta anche
dblink in questo documento. Cloud SQL per PostgreSQL utilizza la versione 1.2. |
| decoderbufs | Un decodificatore logico PostgreSQL che fornisce i dati di output come buffer di protocollo, adattato per Debezium. |
| dict_int | Un modello di dizionario aggiuntivo per la ricerca a testo intero che controlla l'indicizzazione degli interi. Cloud SQL per PostgreSQL utilizza la versione 1.0. |
| earthdistance | Fornisce due approcci per calcolare le distanze ortodromiche sulla superficie della Terra. PostgreSQL 9.6, 10, 11, 12, 13, 14, 15 e 16 utilizzano la versione 1.1. PostgreSQL 17 e 18 utilizzano la versione 1.2. |
| 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 vector embedding per tradurre i prompt testuali in vettori numerici utilizzando un modello linguistico di grandi dimensioni (LLM). PostgreSQL 12 e versioni successive utilizzano la versione 1.4.3. Non supportato per altre versioni. |
| google_read_only_session | Quando l'accesso in scrittura è limitato temporaneamente o definitivamente durante una sessione dal flag cloudsql_session_read_only, l'estensione google_read_only_session inserisce nella lista consentita quanto segue:
|
| insert_username | Fornisce funzioni per memorizzare il nome dell'utente corrente in un campo di testo. Puoi utilizzarlo per monitorare chi ha modificato per ultimo una riga in una tabella del 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 la manipolazione di array di numeri interi senza valori null ed eseguire ricerche indicizzate su di essi. 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 archiviare l'ora corrente in un campo timestamp. Puoi utilizzarlo per monitorare l'ultima volta che una riga in una tabella di database è stata modificata.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. Se utilizzi Private Service Connect per connetterti alla tua istanza Cloud SQL, devi attivare la connettività in uscita di Private Service Connect per utilizzare questa estensione. |
| 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 in 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. Consulta 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 17 utilizzano la versione 1.12. PostgreSQL 18 utilizza la versione 1.13. |
| pgAudit | Raccoglie i dati di controllo.
I valori possibili da impostare per i file di log di controllo per tutte le versioni di pgAudit sono Per saperne di più sull'utilizzo di questa estensione con Cloud SQL, consulta Audit per PostgreSQL utilizzando pgAudit. |
| pg_background | Consente di eseguire comandi arbitrari in un worker in background. PostgreSQL 17 e versioni precedenti utilizzano la versione 1.3. PostgreSQL 18 utilizza la versione 1.4. |
| pg_bigm | Abilita la ricerca a testo intero e consente un indice di bigrammi per una ricerca a testo intero più rapida. Consulta anche pg_bigm in questo documento. |
| pg_buffercache | Fornisce un mezzo per esaminare ciò che sta accadendo 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 e versioni successive utilizzano la versione 1.5. |
| pg_cron | Fornisce uno scheduler di job basato su cron. Questa estensione consente alla sintassi cron di pianificare i comandi PostgreSQL direttamente dal database. Per saperne di più sull'estensione, consulta pg_cron in 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. Consulta
Configurazione della replica e della decodifica logica. PostgreSQL 17 e versioni precedenti utilizzano la versione 2.4.5. PostgreSQL 18 utilizza la versione 2.4.6. |
| pgfincore | Un insieme di funzioni per gestire le pagine nella memoria cache del disco del sistema operativo da PostgreSQL. Consulta anche pgfincore in questo documento. Cloud SQL per PostgreSQL utilizza la versione 1.4. |
| pg_freespacemap | Esamina la mappa dello spazio libero (FSM).
Consulta anche pg_freespacemap in questo documento. PostgreSQL 17 e versioni precedenti utilizzano la versione 1.2. PostgreSQL 18 utilizza la versione 1.3. |
| pg_hint_plan | Consente di migliorare i piani di esecuzione di PostgreSQL utilizzando i suggerimenti, che sono semplici descrizioni nei commenti SQL. Consulta 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 è quindi supportato su tutte le versioni di Cloud SQL per PostgreSQL.
|
| pg_ivm | Consente di aggiornare le viste materializzate in modo che vengano calcolate e applicate solo le modifiche incrementali, anziché ricalcolare i contenuti da zero. PostgreSQL 13 e versioni successive supportano la versione 1.9. |
| pg_partman | Ti aiuta a creare e gestire set di partizioni di tabelle basati sul tempo e sulla serie. Consulta anche pg_partman in questo documento. PostgreSQL 14 e versioni successive supportano la versione 5.4.3, mentre le versioni di PostgreSQL precedenti alla 14 supportano solo la 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_qualstats | Raccoglie statistiche sui predicati, che possono aiutarti a trovare gli indici mancanti. Cloud SQL per PostgreSQL utilizza la versione 2.1.2. |
| plpgsql_check | Uno strumento linter di analisi statica per PL/pgSQL, il linguaggio delle stored procedure nativo di PostgreSQL. Cloud SQL per PostgreSQL utilizza la versione 2.8. Questa estensione è supportata per PostgreSQL 14 e versioni successive. |
| pg_proctab | Consente di utilizzare pg_top con Cloud SQL per PostgreSQL e di 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). Consulta anche pg_repack in questo documento. Cloud SQL per PostgreSQL utilizza la versione 1.5.2. |
| pg_roaringbitmap | L'estensione pg_roaringbitmap introduce un tipo di dati bitmap roaring che consente un'archiviazione altamente efficiente e operazioni di impostazione rapide su grandi raccolte di numeri interi. Archivia dinamicamente i numeri interi in forme compresse (array, bitmap o container di esecuzione) in base alla loro densità, riducendo in modo significativo l'impatto sullo spazio di archiviazione e accelerando operazioni comuni come i calcoli di unione, intersezione e cardinalità.Disponibile in PostgreSQL 12 e versioni successive. Cloud SQL per PostgreSQL utilizza la versione 0.5 di pg_roaringbitmap. |
| 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 supporto per le query di somiglianza 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 11 utilizza la versione 1.5 dell'estensione. PostgreSQL 12, 13, 14, 15, 16 e 17 utilizzano la versione 1.8 dell'estensione. PostgreSQL 18 utilizza la versione 1.9 dell'estensione. |
| pg_textsearch | fornisce la ricerca a testo intero utilizzando l'algoritmo di punteggio BM25 (Best Matching 25) standard di settore per fornire un punteggio di rilevanza altamente accurato. Per saperne di più su questa estensione, consulta Ricerca a testo intero utilizzando pg_textsearch.Richiede PostgreSQL 17 o versioni successive. |
| 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 la versione 1.7. PostgreSQL 13 utilizza la versione 1.8. PostgreSQL 14 utilizza la versione 1.9. PostgreSQL 15 e 16 utilizzano la versione 1.10. PostgreSQL 17 utilizza la versione 1.11. PostgreSQL 18 utilizza 1.12. |
| pgTAP | Fornisce un framework di test delle unità 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 del testo alfanumerico in base alla corrispondenza dei 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. |
| pgvector |
Un'estensione open source per l'archiviazione e la ricerca di vector embedding nei database PostgreSQL. |
| pg_visibility | Fornisce un modo per esaminare la mappa di visibilità (VM) e le informazioni sulla visibilità a livello di pagina di una tabella. Consulta 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 del linguaggio procedurale che consente chiamate di procedura remota tra database PostgreSQL, con sharding facoltativo.
Consulta 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 istanze. Consulta 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 saperne di più, consulta la sezione postgresql_anonymizer. Cloud SQL per PostgreSQL utilizza la versione 1.0.0. |
| postgresql_hll | Fornisce una struttura di dati HyperLogLog ( Cloud SQL per PostgreSQL utilizza la versione 2.18. |
| rdkit | Una raccolta di software di chemoinformatica e machine learning. Puoi utilizzare questa estensione per confrontare, manipolare e identificare le strutture molecolari.
Cloud SQL per PostgreSQL utilizza la versione 4.6.1. |
| refint | Include funzioni per controllare i vincoli di 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 trigger che notifica ai listener 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 ai 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. Il client Postgres può connettersi a un'origine SQL Server utilizzando la crittografia SSL. Tuttavia, la convalida del certificato del server non viene applicata. |
| 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 testuale 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 fornisce 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, consulta Configura i flag di database.
Per visualizzare i dati e gli eventi di logging 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.
dblink
All'interno di una sessione del 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.
Utilizza dblink per connetterti con una password
Per connetterti ai database o alla stessa istanza di un altro utente, devi specificare una password. A scopo di esempio (ma non 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 di esempio (non per scopi di produzione):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Utilizza dblink per connetterti senza password
Per connetterti alla stessa istanza con lo stesso utente, puoi connetterti senza password. Ad esempio:
Imposta il seguente flag di database per abilitare le connessioni locali senza password
cloudsql.allow_passwordless_local_connectionsConnettiti 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 l'istanza nella console Google Cloud .
Consulta 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 abilita la ricerca a testo intero e consente un indice di 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_recheckpg_bigm.gin_key_limitpg_bigm.similarity_limit
Per informazioni sull'impostazione dei flag e per esaminare i flag supportati per questa estensione, consulta Configura 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, consulta Configura 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 del trust 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, consulta Configura 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 ti aiuta a creare e gestire set di partizioni di tabelle basati sul tempo e sulla serie.
In Cloud SQL, questa estensione non include il worker in background (pg_partman_bgw) per la manutenzione automatica delle partizioni. In alternativa, puoi utilizzare pg_cron o Cloud Scheduler con Cloud Run Functions per gestire la manutenzione chiamando funzioni o procedure di manutenzione di pg_partman a intervalli regolari.
Ad esempio, per pianificare la manutenzione delle partizioni utilizzando pg_cron:
- Attiva
pg_cronnell'istanza impostando il flagcloudsql.enable_pg_cronsuon. Per impostazione predefinita,pg_cronviene eseguito nel databasepostgres. Per utilizzare un database diverso, imposta il flagcron.database_namesul nome del database. Per saperne di più, consulta Configura i flag di database. Connettiti al database e crea le estensioni
pg_partmanepg_cron:CREATE SCHEMA IF NOT EXISTS partman; CREATE EXTENSION pg_partman SCHEMA partman; CREATE EXTENSION pg_cron;Dopo aver configurato le tabelle partizionate con
pg_partman, pianifica un jobpg_cronper eseguire la manutenzione delle partizioni a intervalli regolari (ad esempio, ogni ora):SELECT cron.schedule('@hourly', $$CALL partman.run_maintenance_proc()$$);
pg_proctab
Ecco i passaggi per utilizzare l'estensione pg_proctab per attivare l'utilità pg_top:
- Nello strumento psql, esegui il comando CREATE EXTENSION per pg_proctab.
- Scarica ed esegui pg_top.
- Quando ti connetti a un'istanza Cloud SQL per PostgreSQL, aggiungi l'opzione
-rper connetterti a un database remoto e ottenere le 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:
- Media di carico
- Stati della CPU (% utente, nice, sistema, inattiva e iowait)
- Memoria (utilizzata, libera e memorizzata nella cache)
pg_repack
Questa estensione consente di rimuovere il bloat da tabelle e indici. Facoltativamente, puoi utilizzare questa estensione per eseguire un CLUSTER online (ordina le tabelle per indice del cluster). Per saperne di più, consulta la documentazione di pg_repack. Inoltre, per utilizzare questa estensione in Cloud SQL, è necessaria una procedura speciale per aggiungere privilegi a un utente.
Se un utente esterno al ruolo cloudsqlsuperuser vuole utilizzare un'estensione, devi concedergli i privilegi cloudsqlsuperuser. Per saperne di più, consulta Requisito per i privilegi di super utente in questo documento.
L'esempio seguente utilizza il comando GRANT per aggiungere i privilegi necessari.
Esempio di aggiunta di privilegi
Ai fini degli esempi riportati di seguito, csuper1 è un cloudsqlsuperuser e testdb è un database di proprietà di testuser. Per creare l'estensione pg_repack in testdb,
esegui inizialmente i seguenti comandi:
Connettiti a
testdbcomecloudsqlsuperuser:psql -U csuper1 -d testdb;Concedi al proprietario del database, ovvero
testuser,, l'accesso acsuper1:GRANT testuser TO csuper1;Crea l'estensione:
CREATE EXTENSION pg_repack;Esegui il comando
pg_repacksu una tabella, ad esempiot1intestdb, comecsuper1:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1Al termine del job pg_repack, revoca la concessione eseguita nel passaggio 2:
REVOKE testuser FROM csuper1;
Il comando pg_repack potrebbe non riuscire con 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 inferiore, 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, impostalo 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, consulta Configura i flag di database.
pg_textsearch
L'estensione pg_textsearch fornisce la ricerca a testo intero utilizzando l'algoritmo di punteggio BM25 (Best Matching 25) standard di settore per fornire un punteggio di rilevanza altamente accurato. L'estensione è un progetto open source disponibile su GitHub.
L'estensione pg_textsearch richiede PostgreSQL 17 o versioni successive.
Poiché l'estensione pg_textsearch supporta la frequenza inversa dei documenti
(td-idf), la saturazione della frequenza dei termini
e la normalizzazione della lunghezza dei documenti, può produrre risultati più
pertinenti rispetto alla funzione ts_rank integrata di PostgreSQL. Inoltre, poiché opera direttamente sulle pagine di archiviazione PostgreSQL standard, non devi installare un motore di terze parti come Elasticsearch o preoccuparti della manutenzione di cluster doppi e della sincronizzazione dei dati. Utilizzando pg_textsearch, puoi creare esperienze di ricerca solide, scalabili e altamente pertinenti senza uscire dall'ecosistema PostgreSQL.
Per saperne di più, consulta Ricerca a testo intero utilizzando pg_textsearch.
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, consulta Configurazione dei flag di database.
pg_visibility
Questa estensione consente di esaminare la mappa di 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 linguaggio procedurale che consente chiamate di procedura remota tra database PostgreSQL, con sharding facoltativo.
Per saperne di più, consulta la documentazione di PL/Proxy.
Le istanze target per le connessioni devono trovarsi nella stessa rete VPC dell'istanza di connessione. Inoltre, nella consoleGoogle Cloud , non puoi scegliere il pulsante Consenti solo connessioni SSL per le istanze del 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 l'istanza nella console Google Cloud .
Consulta 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, consulta 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'utilizzo, quasi come se fossero tabelle locali. Per saperne di più, consulta postgres_fdw nella documentazione di PostgreSQL.
Questa estensione funziona per due istanze IP private di Cloud SQL 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 archiviati 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.
Consulta 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.