Estensioni PostgreSQL in Azure Cosmos DB for PostgreSQL
SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata su estensione di database Citus per PostgreSQL)
PostgreSQL estende le funzionalità del database usando le estensioni. Le estensioni consentono di creare bundle di più oggetti SQL correlati in un singolo pacchetto che può essere caricato o rimosso dal database con un singolo comando. Dopo essere state caricate nel database, le estensioni possono fungere da funzionalità predefinite. Per altre informazioni sulle estensioni di PostgreSQL, vedere Oggetti correlati a un pacchetto in un'estensione.
Usare le estensioni di PostgreSQL
Per poter usare le estensioni di PostgreSQL è prima necessario installarle nel database. Per installare una determinata estensione, eseguire il comando CREATE EXTENSION dallo strumento psql per caricare gli oggetti del pacchetto nel database.
Nota
Se CREATE EXTENSION
ha esito negativo con un errore di autorizzazione negata, provare invece la funzione create_extension()
. Ad esempio:
SELECT create_extension('postgis');
Per rimuovere un'estensione installata in questo modo, usare drop_extension()
.
Il database di Azure Cosmos DB for PostgreSQL attualmente supporta un subset delle estensioni chiave come indicato qui. Le estensioni diverse da quelle elencate non sono supportate. Non è possibile creare un'estensione personalizzata con Azure Cosmos DB for PostgreSQL.
Estensioni supportate da Azure Cosmos DB for PostgreSQL
Le tabelle seguenti elencano le estensioni PostgreSQL standard supportate in Azure Cosmos DB for PostgreSQL. Queste informazioni sono disponibili anche eseguendo SELECT * FROM pg_available_extensions;
.
Le versioni di ogni estensione installata in un cluster a volte differiscono in base alla versione di PostgreSQL (11, 12, 13, 14, 15 o 16). Le tabelle elencano le versioni dell'estensione per ogni versione del database.
Estensione Citus
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
citus | Database distribuito Citus. | 9,5 | 10,2 | 11.3 | 12.1 | 12.1 | 12.1 |
Estensioni di tipi di dati
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
citext | Fornisce un tipo stringa di caratteri che non distingue fra maiuscole e minuscole. | 1,5 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
cube | Fornisce un tipo di dati per i cubi multidimensionali. | 1.4 | 1.4 | 1.4 | 1,5 | 1,5 | 1,5 |
hll | Fornisce una struttura di dati HyperLogLog. | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 | 2.18 |
hstore | Fornisce un tipo di dati per l'archiviazione dei set di coppie chiave/valore. | 1,5 | 1.6 | 1,7 | 1.8 | 1.8 | 1.8 |
isn | Fornisce tipi di dati per gli standard di numerazione dei prodotti internazionali. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
lo | Manutenzione di Large Object. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
ltree | Fornisce un tipo di dati per le strutture ad albero gerarchico. | 1.1 | 1.1 | 1.2 | 1.2 | 1.2 | 1.2 |
Seg | Tipo di dati per la rappresentazione di segmenti di linea o intervalli a virgola mobile. | 1.3 | 1.3 | 1.3 | 1.4 | 1.4 | 1.4 |
tdigest | Tipo di dati per l'accumulo on-line di statistiche basate su classificazione, ad esempio quantili e trimmed mean. | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 | 1.4.1 |
topn | Tipo per JSONB top-n. | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 | 2.6.0 |
Estensioni di ricerca full-text
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
dict_int | Fornisce un modello di dizionario di ricerca di testo per i numeri interi. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
dict_xsyn | Modello di dizionario di ricerca testuale per l'elaborazione estesa dei sinonimi. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
unaccent | Un dizionario di ricerca di testo che rimuove gli accenti (segni diacritici) dai lessemi. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
Estensioni di funzioni
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 15 |
---|---|---|---|---|---|---|---|
autoinc | Funzioni per i campi a incremento automatico. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
earthdistance | Fornisce un modo per calcolare le distanze ortodromiche sulla superficie terrestre. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
fuzzystrmatch | Offre diverse funzioni per determinare analogie e distanza tra le stringhe. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.2 |
insert_username | Funzioni per rilevare chi ha modificato una tabella. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
intagg | Aggregatore di numeri interi ed enumeratore (obsoleto). | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
intarray | Fornisce funzioni e operatori per la manipolazione delle matrici di interi senza null. | 1.2 | 1.2 | 1.3 | 1,5 | 1,5 | 1,5 |
moddatetime | Funzioni per tenere traccia dell'ora dell'ultima modifica. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
orafce | Funzioni e operatori che emulano un subset di funzioni e pacchetti dal sistema di gestione di database relazionali Oracle. | 4.9 | 4.9 | 4.9 | |||
pg_partman | Gestisce le tabelle partizionate per ora o ID. | 4.7.4 | 4.7.4 | 4.7.4 | 5.1.0 | 5.1.0 | 5.1.0 |
pg_surgery | Funzioni per eseguire una sequenza chirurgica su una relazione danneggiata. | 1.0 | 1.0 | 1.0 | |||
pg_trgm | Fornisce funzioni e operatori per determinare la somiglianza del testo alfanumerico in base alla corrispondenza trigramma. | 1.4 | 1.4 | 1.5 | 1.6 | 1.6 | 1.6 |
pgcrypto | Fornisce funzioni di crittografia. | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
refint | Funzioni per l'implementazione dell'integrità referenziale (obsolete). | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tablefunc | Fornisce funzioni che consentono di modificare intere tabelle, compresi i campi incrociati. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tcn | Notifiche di modifica attivate. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
timetravel | Funzioni per l'implementazione dello spostamento cronologico. | 1.0 | |||||
uuid-ossp | Genera identificatori universalmente univoci (UUID). | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
Estensioni di tipi di indice
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
bloom | Metodo di accesso Bloom: indice basato su file di firma. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
btree_gin | Fornisce classi operatore GIN di esempio che implementano un comportamento simile alla struttura ad albero B per determinati tipi di dati. | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
btree_gist | Fornisce classi operatore indice GiST che implementano la struttura b-tree. | 1,5 | 1,5 | 1,5 | 1.6 | 1,7 | 1,7 |
Estensioni del linguaggio
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
plpgsql | Linguaggio procedurale caricabile PL/pgSQL. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
Estensioni varie
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
amcheck | Funzioni per la verifica dell'integrità delle relazioni. | 1.1 | 1.2 | 1.2 | 1.3 | 1.3 | 1.3 |
dblink | Modulo che supporta le connessioni ad altri database PostgreSQL da una sessione di database. Per informazioni su questa estensione, vedere la sezione "dblink and postgres_fdw". | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
old_snapshot | Consente l'ispezione dello stato del server utilizzato per implementare old_snapshot_threshold. | 1.0 | 1.0 | 1.0 | |||
pageinspect | Esaminare il contenuto delle pagine del database a un livello basso. | 1,7 | 1,7 | 1.8 | 1,9 | 1.11 | 1.12 |
pg_azure_storage | Integrazione di Azure per PostgreSQL. | 1.3 | 1.3 | 1.3 | 1.3 | ||
pg_buffercache | Fornisce un modo per esaminare ciò che avviene nella cache del buffer condiviso in tempo reale. | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.4 |
pg_cron | Pianificatore di processi per PostgreSQL. | 1,5 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 |
pg_freespacemap | Esaminare la mappa dello spazio disponibile (FSM). | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pg_prewarm | Fornisce un modo per caricare i dati di relazione nella cache del buffer. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pg_stat_statements | Fornisce un modo per tenere traccia delle statistiche di esecuzione di tutte le istruzioni SQL eseguite da un server. Per informazioni su questa estensione, vedere la sezione "pg_stat_statements". | 1.6 | 1,7 | 1.8 | 1,9 | 1,10 | 1,10 |
pg_visibility | Esaminare le informazioni sulla mappa di visibilità (VM) e sulla visibilità a livello di pagina. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pgrowlocks | Fornisce un modo per visualizzare le informazioni di blocco a livello di riga. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
pgstattuple | Fornisce un modo per visualizzare le statistiche a livello di tupla. | 1,5 | 1,5 | 1,5 | 1,5 | 1,5 | 1,5 |
postgres_fdw | Wrapper di dati esterni usato per accedere ai dati archiviati in server PostgreSQL esterni. Per informazioni su questa estensione, vedere la sezione "dblink and postgres_fdw". | 1.0 | 1.0 | 1.0 | 1.1 | 1.1 | 1.1 |
sslinfo | Informazioni sui certificati TLS/SSL. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
tsm_system_rows | Metodo TABLESAMPLE, che accetta il numero di righe come limite. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
tsm_system_time | Metodo TABLESAMPLE, che accetta il tempo in millisecondi come limite. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
xml2 | Esecuzione di query XPath e XSLT. | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
Estensione Pgvector
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
pgvector | Ricerca della somiglianza dei vettori open source per Postgres | 0.5.1 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 |
Estensioni di PostGIS
Estensione | Descrizione | PG 11 | PG 12 | PG 13 | PG 14 | PG 15 | PG 16 |
---|---|---|---|---|---|---|---|
PostGIS | Oggetti spaziali e geografici per PostgreSQL. | 3.3.4 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 | 3.4.1 |
address_standardizer | Consente di analizzare un indirizzo nei suoi elementi costitutivi. Consente di supportare il passaggio di normalizzazione dell'indirizzo nella geocodifica. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
postgis_sfcgal | Funzioni SFCGAL PostGIS. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
postgis_topology | Tipi e funzioni spaziali di topologia PostGIS. | 3.3.4 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 | 3.4.2 |
pg_stat_statements
L'estensione pg_stat_statements è precaricata in ogni cluster Azure Cosmos DB for PostgreSQL per consentire di tenere traccia delle statistiche di esecuzione delle istruzioni SQL.
L'impostazione pg_stat_statements.track
controlla quali istruzioni vengono conteggiate dall'estensione. L'impostazione predefinita è top
, il che significa che vengono rilevate tutte le istruzioni rilasciate direttamente dai client. Gli altri due livelli di rilevamento sono none
e all
.
È necessario trovare un compromesso tra le informazioni sull'esecuzione di query fornite da pg_stat_statements e l'effetto della registrazione di ogni istruzione SQL sulle prestazioni del server. Se non si usa attivamente l'estensione pg_stat_statements, è consigliabile impostare pg_stat_statements.track
su none
. Alcuni servizi di monitoraggio di terze parti possono basarsi su pg_stat_statements per offrire informazioni dettagliate sulle prestazioni delle query. Verificare se questo è il proprio caso.
dblink e postgres_fdw
È possibile usare dblink e postgres_fdw per connettersi da un server PostgreSQL a un altro oppure a un altro database nello stesso server. Il server di destinazione deve consentire le connessioni dal server di origine attraverso il firewall. Per usare queste estensioni per eseguire la connessione tra cluster Azure Cosmos DB for PostgreSQL con accesso pubblico, impostare Consenti a servizi e risorse di Azure di accedere a questo cluster (o server) su ON. È anche necessario attivare questa impostazione se si desidera utilizzare le estensioni per eseguire il loopback allo stesso server. L'impostazione Consenti a servizi e risorse di Azure di accedere a questo cluster è disponibile nella pagina del portale di Azure per il cluster in Rete. Attualmente, le connessioni in uscita da Azure Cosmos DB for PostgreSQL non sono supportate.
Estensione orafce
Le funzioni utl_file sono disabilitate nell'estensione orafce.
Passaggi successivi
- Informazioni sulle versioni di PostgreSQL supportate.