Condividi tramite


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.

È 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