Estensioni di PostgreSQL in Database di Azure per PostgreSQL - Server singolo
SI APPLICA A: Database di Azure per PostgreSQL - Server singolo
Importante
Database di Azure per PostgreSQL - Il server singolo è in fase di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere Cosa succede a Database di Azure per PostgreSQL - Server singolo?.
PostgreSQL offre la capacità di estendere le funzionalità del database usando le estensioni. Le estensioni creano un bundle di più oggetti SQL correlati in un singolo pacchetto che può essere caricato o rimosso dal database con un singolo comando. Dopo essere stato caricate nel database, le estensioni si comportano come le funzionalità predefinite.
Come 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 nel database gli oggetti inclusi nel pacchetto.
Il database di Azure per PostgreSQL supporta un subset delle estensioni chiave come indicato di seguito. Queste informazioni sono disponibili anche eseguendo SELECT * FROM pg_available_extensions;
. Oltre a quelle elencate, non sono supportate altre estensioni. È possibile creare estensioni personalizzate nel database di Azure per PostgreSQL.
Estensioni postgres 11
Le estensioni seguenti sono disponibili nei server di Database di Azure per PostgreSQL con Postgres versione 11.
Estensione | Versione dell'estensione | Descrizione |
---|---|---|
address_standardizer | 2.5.1 | Consente di analizzare un indirizzo nei suoi elementi costitutivi. |
address_standardizer_data_us | 2.5.1 | Esempio di set di dati Address Standardizer US |
btree_gin | 1.3 | Supporto per l'indicizzazione di tipi di dati comuni in GIN |
btree_gist | 1,5 | Supporto per l'indicizzazione di tipi di dati comuni in GiST |
citext | 1,5 | Tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole |
cube | 1.4 | Tipo di dati per i cubi multidimensionali |
dblink | 1.2 | Connettersi ad altri database PostgreSQL dall'interno di un database |
dict_int | 1.0 | Modello di dizionario di ricerca di testo per i numeri interi |
earthdistance | 1.1 | Calcolare le distanze ortodromiche sulla superficie terrestre |
fuzzystrmatch | 1.1 | Determinare analogie e distanza tra stringhe |
hstore | 1,5 | Tipo di dati per l'archiviazione dei set di coppie (chiave/valore) |
hypopg | 1.1.2 | Indici ipotetici per PostgreSQL |
intarray | 1.2 | Funzioni, operatori e supporto dell'indice per matrici 1D di numeri interi |
isn | 1.2 | Tipi di dati per gli standard di numerazione dei prodotti internazionali |
ltree | 1.1 | Tipo di dati per strutture ad albero gerarchico |
orafce | 3.7 | Funzioni e operatori che emulano un subset di funzioni e pacchetti dal sistema di gestione di database relazionali commerciale |
pgaudit | 1.3.1 | Fornisce funzionalità di controllo |
pgcrypto | 1.3 | Funzioni crittografiche |
pgrouting | 2.6.2 | Estensione PgRouting |
pgrowlocks | 1.2 | Mostrare informazioni sul blocco a livello di riga |
pgstattuple | 1,5 | Mostrare le statistiche a livello di tupla |
pg_buffercache | 1.3 | Esaminare la cache del buffer condiviso |
pg_partman | 4.0.0 | Estensione per gestire le tabelle partizionate in base all'ora o all'ID |
pg_prewarm | 1.2 | Dati di relazione prewarm |
pg_stat_statements | 1.6 | tenere traccia delle statistiche di esecuzione di tutte le istruzioni SQL eseguite |
pg_trgm | 1.4 | Misurazione della somiglianza del testo e ricerca di indici in base ai trigrammi |
plpgsql | 1.0 | Linguaggio procedurale PL/pgSQL |
plv8 | 2.3.11 | Linguaggio procedurale attendibile PL/JavaScript (v8) |
postgis | 2.5.1 | Funzioni e tipi spaziali postGIS, geography e raster |
postgis_sfcgal | 2.5.1 | Funzioni SFCGAL PostGIS |
postgis_tiger_geocoder | 2.5.1 | Geocoder tiger postGIS e geocoder inverso |
postgis_topology | 2.5.1 | Tipi e funzioni spaziali di topologia PostGIS |
postgres_fdw | 1.0 | Wrapper di dati stranieri per server PostgreSQL remoti |
tablefunc | 1.0 | Funzioni che consentono di modificare intere tabelle, compresi i campi incrociati |
timescaledb | 1.7.4 | Abilita inserimenti scalabili e query complesse per i dati delle serie temporali |
unaccent | 1.1 | Dizionario di ricerca del testo che rimuove gli accenti |
uuid-ossp | 1.1 | Generare identificatori universalmente univoci (UUID) |
Estensioni postgres 10
Le estensioni seguenti sono disponibili nei server di Database di Azure per PostgreSQL con Postgres versione 10.
Estensione | Versione dell'estensione | Descrizione |
---|---|---|
address_standardizer | 2.5.1 | Consente di analizzare un indirizzo nei suoi elementi costitutivi. |
address_standardizer_data_us | 2.5.1 | Esempio di set di dati Address Standardizer US |
btree_gin | 1.3 | Supporto per l'indicizzazione di tipi di dati comuni in GIN |
btree_gist | 1,5 | Supporto per l'indicizzazione di tipi di dati comuni in GiST |
chkpass | 1.0 | Fornisce un tipo di dati per le password con crittografia automatica |
citext | 1.4 | Tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole |
cube | 1.2 | Tipo di dati per i cubi multidimensionali |
dblink | 1.2 | Connettersi ad altri database PostgreSQL dall'interno di un database |
dict_int | 1.0 | Modello di dizionario di ricerca di testo per i numeri interi |
earthdistance | 1.1 | Calcolare le distanze ortodromiche sulla superficie terrestre |
fuzzystrmatch | 1.1 | Determinare analogie e distanza tra stringhe |
hstore | 1.4 | Tipo di dati per l'archiviazione dei set di coppie (chiave/valore) |
hypopg | 1.1.1 | Indici ipotetici per PostgreSQL |
intarray | 1.2 | Funzioni, operatori e supporto dell'indice per matrici 1D di numeri interi |
isn | 1.1 | Tipi di dati per gli standard di numerazione dei prodotti internazionali |
ltree | 1.1 | Tipo di dati per strutture ad albero gerarchico |
orafce | 3.7 | Funzioni e operatori che emulano un subset di funzioni e pacchetti dal sistema di gestione di database relazionali commerciale |
pgaudit | 1.2 | Fornisce funzionalità di controllo |
pgcrypto | 1.3 | Funzioni crittografiche |
pgrouting | 2.5.2 | Estensione PgRouting |
pgrowlocks | 1.2 | Mostrare informazioni sul blocco a livello di riga |
pgstattuple | 1,5 | Mostrare le statistiche a livello di tupla |
pg_buffercache | 1.3 | Esaminare la cache del buffer condiviso |
pg_partman | 2.6.3 | Estensione per gestire le tabelle partizionate in base all'ora o all'ID |
pg_prewarm | 1.1 | Dati di relazione prewarm |
pg_stat_statements | 1.6 | tenere traccia delle statistiche di esecuzione di tutte le istruzioni SQL eseguite |
pg_trgm | 1.3 | Misurazione della somiglianza del testo e ricerca di indici in base ai trigrammi |
plpgsql | 1.0 | Linguaggio procedurale PL/pgSQL |
plv8 | 2.1.0 | Linguaggio procedurale attendibile PL/JavaScript (v8) |
postgis | 2.4.3 | Funzioni e tipi spaziali postGIS, geography e raster |
postgis_sfcgal | 2.4.3 | Funzioni SFCGAL PostGIS |
postgis_tiger_geocoder | 2.4.3 | Geocoder tiger postGIS e geocoder inverso |
postgis_topology | 2.4.3 | Tipi e funzioni spaziali di topologia PostGIS |
postgres_fdw | 1.0 | Wrapper di dati stranieri per server PostgreSQL remoti |
tablefunc | 1.0 | Funzioni che consentono di modificare intere tabelle, compresi i campi incrociati |
timescaledb | 1.7.4 | Abilita inserimenti scalabili e query complesse per i dati delle serie temporali |
unaccent | 1.1 | Dizionario di ricerca del testo che rimuove gli accenti |
uuid-ossp | 1.1 | Generare identificatori universalmente univoci (UUID) |
Estensioni postgres 9.6
Le estensioni seguenti sono disponibili nei server di Database di Azure per PostgreSQL con Postgres versione 9.6.
Estensione | Versione dell'estensione | Descrizione |
---|---|---|
address_standardizer | 2.3.2 | Consente di analizzare un indirizzo nei suoi elementi costitutivi. |
address_standardizer_data_us | 2.3.2 | Esempio di set di dati Address Standardizer US |
btree_gin | 1.0 | Supporto per l'indicizzazione di tipi di dati comuni in GIN |
btree_gist | 1.2 | Supporto per l'indicizzazione di tipi di dati comuni in GiST |
chkpass | 1.0 | Fornisce un tipo di dati per le password con crittografia automatica |
citext | 1.3 | Tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole |
cube | 1.2 | Tipo di dati per i cubi multidimensionali |
dblink | 1.2 | Connettersi ad altri database PostgreSQL dall'interno di un database |
dict_int | 1.0 | Modello di dizionario di ricerca di testo per i numeri interi |
earthdistance | 1.1 | Calcolare le distanze ortodromiche sulla superficie terrestre |
fuzzystrmatch | 1.1 | Determinare analogie e distanza tra stringhe |
hstore | 1.4 | Tipo di dati per l'archiviazione dei set di coppie (chiave/valore) |
hypopg | 1.1.1 | Indici ipotetici per PostgreSQL |
intarray | 1.2 | Funzioni, operatori e supporto dell'indice per matrici 1D di numeri interi |
isn | 1.1 | Tipi di dati per gli standard di numerazione dei prodotti internazionali |
ltree | 1.1 | Tipo di dati per strutture ad albero gerarchico |
orafce | 3.7 | Funzioni e operatori che emulano un subset di funzioni e pacchetti dal sistema di gestione di database relazionali commerciale |
pgaudit | 1.1.2 | Fornisce funzionalità di controllo |
pgcrypto | 1.3 | Funzioni crittografiche |
pgrouting | 2.3.2 | Estensione PgRouting |
pgrowlocks | 1.2 | Mostrare informazioni sul blocco a livello di riga |
pgstattuple | 1.4 | Mostrare le statistiche a livello di tupla |
pg_buffercache | 1.2 | Esaminare la cache del buffer condiviso |
pg_partman | 2.6.3 | Estensione per gestire le tabelle partizionate in base all'ora o all'ID |
pg_prewarm | 1.1 | Dati di relazione prewarm |
pg_stat_statements | 1.4 | tenere traccia delle statistiche di esecuzione di tutte le istruzioni SQL eseguite |
pg_trgm | 1.3 | Misurazione della somiglianza del testo e ricerca di indici in base ai trigrammi |
plpgsql | 1.0 | Linguaggio procedurale PL/pgSQL |
plv8 | 2.1.0 | Linguaggio procedurale attendibile PL/JavaScript (v8) |
postgis | 2.3.2 | Funzioni e tipi spaziali postGIS, geography e raster |
postgis_sfcgal | 2.3.2 | Funzioni SFCGAL PostGIS |
postgis_tiger_geocoder | 2.3.2 | Geocoder tiger postGIS e geocoder inverso |
postgis_topology | 2.3.2 | Tipi e funzioni spaziali di topologia PostGIS |
postgres_fdw | 1.0 | Wrapper di dati stranieri per server PostgreSQL remoti |
tablefunc | 1.0 | Funzioni che consentono di modificare intere tabelle, compresi i campi incrociati |
timescaledb | 1.7.4 | Abilita inserimenti scalabili e query complesse per i dati delle serie temporali |
unaccent | 1.1 | Dizionario di ricerca del testo che rimuove gli accenti |
uuid-ossp | 1.1 | Generare identificatori universalmente univoci (UUID) |
Estensioni postgres 9.5
Nota
PostgreSQL versione 9.5 è stato ritirato.
Le estensioni seguenti sono disponibili nei server di Database di Azure per PostgreSQL con Postgres versione 9.5.
Estensione | Versione dell'estensione | Descrizione |
---|---|---|
address_standardizer | 2.3.0 | Consente di analizzare un indirizzo nei suoi elementi costitutivi. |
address_standardizer_data_us | 2.3.0 | Esempio di set di dati Address Standardizer US |
btree_gin | 1.0 | Supporto per l'indicizzazione di tipi di dati comuni in GIN |
btree_gist | 1.1 | Supporto per l'indicizzazione di tipi di dati comuni in GiST |
chkpass | 1.0 | Fornisce un tipo di dati per le password con crittografia automatica |
citext | 1.1 | Tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole |
cube | 1.0 | Tipo di dati per i cubi multidimensionali |
dblink | 1.1 | Connettersi ad altri database PostgreSQL dall'interno di un database |
dict_int | 1.0 | Modello di dizionario di ricerca di testo per i numeri interi |
earthdistance | 1.0 | Calcolare le distanze ortodromiche sulla superficie terrestre |
fuzzystrmatch | 1.0 | Determinare analogie e distanza tra stringhe |
hstore | 1.3 | Tipo di dati per l'archiviazione dei set di coppie (chiave/valore) |
hypopg | 1.1.1 | Indici ipotetici per PostgreSQL |
intarray | 1.0 | Funzioni, operatori e supporto dell'indice per matrici 1D di numeri interi |
isn | 1.0 | Tipi di dati per gli standard di numerazione dei prodotti internazionali |
ltree | 1.0 | Tipo di dati per strutture ad albero gerarchico |
orafce | 3.7 | Funzioni e operatori che emulano un subset di funzioni e pacchetti dal sistema di gestione di database relazionali commerciale |
pgaudit | 1.0.7 | Fornisce funzionalità di controllo |
pgcrypto | 1.2 | Funzioni crittografiche |
pgrouting | 2.3.0 | Estensione PgRouting |
pgrowlocks | 1.1 | Mostrare informazioni sul blocco a livello di riga |
pgstattuple | 1.3 | Mostrare le statistiche a livello di tupla |
pg_buffercache | 1.1 | Esaminare la cache del buffer condiviso |
pg_partman | 2.6.3 | Estensione per gestire le tabelle partizionate in base all'ora o all'ID |
pg_prewarm | 1.0 | Dati di relazione prewarm |
pg_stat_statements | 1.3 | tenere traccia delle statistiche di esecuzione di tutte le istruzioni SQL eseguite |
pg_trgm | 1.1 | Misurazione della somiglianza del testo e ricerca di indici in base ai trigrammi |
plpgsql | 1.0 | Linguaggio procedurale PL/pgSQL |
postgis | 2.3.0 | Funzioni e tipi spaziali postGIS, geography e raster |
postgis_sfcgal | 2.3.0 | Funzioni SFCGAL PostGIS |
postgis_tiger_geocoder | 2.3.0 | Geocoder tiger postGIS e geocoder inverso |
postgis_topology | 2.3.0 | Tipi e funzioni spaziali di topologia PostGIS |
postgres_fdw | 1.0 | Wrapper di dati stranieri per server PostgreSQL remoti |
tablefunc | 1.0 | Funzioni che consentono di modificare intere tabelle, compresi i campi incrociati |
unaccent | 1.0 | Dizionario di ricerca del testo che rimuove gli accenti |
uuid-ossp | 1.0 | Generare identificatori universalmente univoci (UUID) |
pg_stat_statements
L'estensione pg_stat_statements è precaricata in ogni server di Database di Azure per PostgreSQL per consentire di tenere traccia delle statistiche di esecuzione delle istruzioni SQL.
L'impostazione pg_stat_statements.track
, che controlla le istruzioni conteggiate mediante l'estensione, è impostata su top
. Ciò consente di rilevare tutte le istruzioni eseguite direttamente dai client. Gli altri due livelli di rilevamento sono none
e all
. Questa impostazione è configurabile come parametro del server tramite il portale di Azure o l'interfaccia della riga di comando di Azure.
È necessario trovare un compromesso tra le informazioni sull'esecuzione di query fornite da pg_stat_statements e l'impatto 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
. Si noti che alcuni servizi di monitoraggio di terze parti possono basarsi su pg_stat_statements per fornire informazioni dettagliate sulle prestazioni delle query. Verificare se questo è il proprio caso.
dblink e postgres_fdw
dblink e postgres_fdw consentono di 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. Quando si usano queste estensioni per la connessione tra server Database di Azure per PostgreSQL, questa operazione può essere eseguita attivando l'impostazione "Consenti l'accesso a Servizi di Azure". Questo è necessario anche quando si vogliono usare le estensioni per il loopback allo stesso server. L'impostazione "Consenti l'accesso a Servizi di Azure" è disponibile nella pagina del portale di Azure per il server Postgres, nell'area Sicurezza connessione. L'attivazione di "Consenti l'accesso ai servizi di Azure" attiva tutti gli indirizzi IP di Azure nell'elenco elementi consentiti.
Nota
Attualmente, le connessioni in uscita da Database di Azure per PostgreSQL tramite estensioni wrapper esterne, ad esempio postgres_fdw, non sono supportate, ad eccezione delle connessioni ad altri server di Database di Azure per PostgreSQL nella stessa area di Azure.
uuid
Se si prevede di usare uuid_generate_v4()
dall'estensione uuid-ossp, è consigliabile il confronto con gen_random_uuid()
dall'estensione pgcrypto per ottenere vantaggi in termini di prestazioni.
pgAudit
L'estensione pgAudit fornisce la registrazione di controllo delle sessioni e degli oggetti. Per informazioni su come usare questa estensione in Database di Azure per PostgreSQL, vedere l'articolo concetti relativi al controllo.
pg_prewarm
L'estensione pg_prewarm carica i dati relazionali nella cache. Il preriscaldamento delle cache significa che le query hanno tempi di risposta migliori alla prima esecuzione dopo un riavvio. In Postgres 10 e versioni successive, la prewarming viene eseguita manualmente usando la funzione prewarm.
In Postgres 11 e versioni successive è possibile configurare la prewarming in modo che venga eseguito automaticamente. È necessario includere pg_prewarm nell'elenco shared_preload_libraries
dei parametri e riavviare il server per applicare la modifica. I parametri possono essere impostati dal portale di Azure, dall'interfaccia della riga di comando, dall'API REST o dal modello ARM.
TimescaleDB
TimescaleDB è un database time series che viene creato in un pacchetto come estensione per PostgreSQL. TimescaleDB offre funzioni analitiche orientate al tempo, ottimizzazioni e scalabilità di Postgres per carichi di lavoro di serie temporali.
Altre informazioni su TimescaleDB, un marchio registrato di Timescale, Inc. Database di Azure per PostgreSQL offre l'edizione TimescaleDB Apache-2.
Installazione di TimescaleDB
Per installare TimescaleDB, è necessario includerlo nelle librerie di precaricamento condivise del server. Per rendere effettiva una modifica al parametro shared_preload_libraries
di Postgres, è necessario riavviare il server. È possibile modificare i parametri usando il portale di Azure o l'interfaccia della riga di comando di Azure.
Tramite il portale di Azure:
Selezionare il server di Database di Azure per PostgreSQL.
Nella barra laterale selezionare Parametri del server.
Cercare il
shared_preload_libraries
parametro.Selezionare TimescaleDB.
Selezionare Salva per mantenere le modifiche. Una volta salvata la modifica, si riceve una notifica.
Dopo la notifica, riavviare il server per applicare queste modifiche. Per informazioni su come riavviare un server, vedere Riavviare un server di Database di Azure per PostgreSQL.
È ora possibile abilitare TimescaleDB nel database Postgres. Connettersi al database ed eseguire il comando seguente:
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Suggerimento
Se viene visualizzato un errore, verificare di aver riavviato il server dopo aver salvato shared_preload_libraries.
È ora possibile creare un hypertable TimescaleDB da zero o eseguire la migrazione dei dati delle serie temporali esistenti in PostgreSQL.
Ripristino di un database di scalabilità temporale usando pg_dump e pg_restore
Per ripristinare un database di scala cronologica usando pg_dump e pg_restore, è necessario eseguire due procedure helper nel database di destinazione: timescaledb_pre_restore()
e timescaledb_post restore()
.
Preparare prima di tutto il database di destinazione:
--create the new database where you'll perform the restore
CREATE DATABASE tutorial;
\c tutorial --connect to the database
CREATE EXTENSION timescaledb;
SELECT timescaledb_pre_restore();
È ora possibile eseguire pg_dump nel database originale e quindi eseguire pg_restore. Dopo il ripristino, assicurarsi di eseguire il comando seguente nel database ripristinato:
SELECT timescaledb_post_restore();
Per altri dettagli sul metodo di ripristino con il database abilitato per la scalabilità cronologica, vedere la documentazione relativa alla scalabilità cronologica
Ripristino di un database di scalabilità temporale usando timescaledb-backup
Durante l'esecuzione della procedura SELECT timescaledb_post_restore()
elencata sopra, è possibile ottenere autorizzazioni negate durante l'aggiornamento del flag timescaledb.restore. Ciò è dovuto a un'autorizzazione ALTER DATABASE limitata nei servizi di database PaaS cloud. In questo caso è possibile eseguire un metodo alternativo usando lo strumento timescaledb-backup
per eseguire il backup e il ripristino del database di scala cronologica. Timescaledb-backup è un programma per rendere il dump e il ripristino di un database TimescaleDB più semplice, meno soggetto a errori e prestazioni più elevate.
A tale scopo, eseguire le operazioni seguenti
- Installare gli strumenti come descritto qui
- Creare un database e un server di Database di Azure per PostgreSQL di destinazione
- Abilitare l'estensione Scala cronologica come illustrato in precedenza
- Concedere il ruolo azure_pg_admin all'utente che verrà usato da ts-restore
- Eseguire ts-restore per ripristinare il database
Altre informazioni su queste utilità sono disponibili qui.
Nota
Quando si usano utilità timescale-backup
per eseguire il ripristino in Azure, poiché i nomi utente del database per Database di Azure per PostgresQL non flessibili devono usare il formato <user@db-name>
, è necessario sostituire @
con la codifica dei caratteri %40
.
Passaggi successivi
Segnalare a Microsoft la mancanza di un'estensione che si desidera usare. Esprimere un voto per le richieste esistenti o creare nuovi commenti e richieste nel forum dei commenti.