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 - Server singolo si trova nel percorso 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 What's happening to Database di Azure per PostgreSQL Single Server?.

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.

Database di Azure per PostgreSQL supporta un subset di estensioni chiave, come illustrato di seguito. Queste informazioni sono disponibili anche eseguendo SELECT * FROM pg_available_extensions;. Oltre a quelle elencate, non sono supportate altre estensioni. Non è possibile creare un'estensione personalizzata in Database di Azure per PostgreSQL.

Estensioni postgres 11

Le estensioni seguenti sono disponibili nei server 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 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 numeri interi
earthdistance 1.1 calcolare grandi distanze cerchio sulla superficie della Terra
fuzzystrmatch 1.1 determinare analogie e distanza tra stringhe
hstore 1,5 tipo di dati per l'archiviazione di 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 standard internazionali di numerazione dei prodotti
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 da RDBMS commerciale
pgaudit 1.3.1 fornisce funzionalità di controllo
pgcrypto 1.3 funzioni crittografiche
pgrouting 2.6.2 Estensione pgRouting
pgrowlocks 1.2 visualizzare le informazioni sul blocco a livello di riga
pgstattuple 1,5 mostra 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 dell'indice 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 PostGIS SFCGAL
postgis_tiger_geocoder 2.5.1 Geocoder tiger postGIS e geocoder inverso
postgis_topology 2.5.1 Funzioni e tipi spaziali di topologia PostGIS
postgres_fdw 1.0 wrapper di dati stranieri per server PostgreSQL remoti
tablefunc 1.0 funzioni che modificano intere tabelle, inclusi 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 di testo che rimuove gli accenti
uuid-ossp 1.1 generare identificatori univoci universalmente (UUID)

Estensioni postgres 10

Le estensioni seguenti sono disponibili nei server 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 tipo di dati per le password crittografate automaticamente
citext 1.4 tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole
cube 1.2 tipo di dati per 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 numeri interi
earthdistance 1.1 calcolare grandi distanze cerchio sulla superficie della Terra
fuzzystrmatch 1.1 determinare analogie e distanza tra stringhe
hstore 1.4 tipo di dati per l'archiviazione di 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 standard internazionali di numerazione dei prodotti
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 da RDBMS commerciale
pgaudit 1.2 fornisce funzionalità di controllo
pgcrypto 1.3 funzioni crittografiche
pgrouting 2.5.2 Estensione pgRouting
pgrowlocks 1.2 visualizzare le informazioni sul blocco a livello di riga
pgstattuple 1,5 mostra 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 dell'indice 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 PostGIS SFCGAL
postgis_tiger_geocoder 2.4.3 Geocoder tiger postGIS e geocoder inverso
postgis_topology 2.4.3 Funzioni e tipi spaziali di topologia PostGIS
postgres_fdw 1.0 wrapper di dati stranieri per server PostgreSQL remoti
tablefunc 1.0 funzioni che modificano intere tabelle, inclusi 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 di testo che rimuove gli accenti
uuid-ossp 1.1 generare identificatori univoci universalmente (UUID)

Estensioni postgres 9.6

Le estensioni seguenti sono disponibili nei server 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 tipo di dati per le password crittografate automaticamente
citext 1.3 tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole
cube 1.2 tipo di dati per 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 numeri interi
earthdistance 1.1 calcolare grandi distanze cerchio sulla superficie della Terra
fuzzystrmatch 1.1 determinare analogie e distanza tra stringhe
hstore 1.4 tipo di dati per l'archiviazione di 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 standard internazionali di numerazione dei prodotti
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 da RDBMS commerciale
pgaudit 1.1.2 fornisce funzionalità di controllo
pgcrypto 1.3 funzioni crittografiche
pgrouting 2.3.2 Estensione pgRouting
pgrowlocks 1.2 visualizzare le informazioni sul blocco a livello di riga
pgstattuple 1.4 mostra 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 dell'indice 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 PostGIS SFCGAL
postgis_tiger_geocoder 2.3.2 Geocoder tiger postGIS e geocoder inverso
postgis_topology 2.3.2 Funzioni e tipi spaziali di topologia PostGIS
postgres_fdw 1.0 wrapper di dati stranieri per server PostgreSQL remoti
tablefunc 1.0 funzioni che modificano intere tabelle, inclusi 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 di testo che rimuove gli accenti
uuid-ossp 1.1 generare identificatori univoci universalmente (UUID)

Estensioni postgres 9.5

Nota

PostgreSQL versione 9.5 è stato ritirato.

Le estensioni seguenti sono disponibili nei server 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 tipo di dati per le password crittografate automaticamente
citext 1.1 tipo di dati per stringhe di caratteri senza distinzione tra maiuscole e minuscole
cube 1.0 tipo di dati per 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 numeri interi
earthdistance 1.0 calcolare grandi distanze cerchio sulla superficie della Terra
fuzzystrmatch 1.0 determinare analogie e distanza tra stringhe
hstore 1.3 tipo di dati per l'archiviazione di 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 standard internazionali di numerazione dei prodotti
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 da RDBMS commerciale
pgaudit 1.0.7 fornisce funzionalità di controllo
pgcrypto 1.2 funzioni crittografiche
pgrouting 2.3.0 Estensione pgRouting
pgrowlocks 1.1 visualizzare le informazioni sul blocco a livello di riga
pgstattuple 1.3 mostra 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 dell'indice 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 PostGIS SFCGAL
postgis_tiger_geocoder 2.3.0 Geocoder tiger postGIS e geocoder inverso
postgis_topology 2.3.0 Funzioni e tipi spaziali di topologia PostGIS
postgres_fdw 1.0 wrapper di dati stranieri per server PostgreSQL remoti
tablefunc 1.0 funzioni che modificano intere tabelle, inclusi i campi incrociati
unaccent 1.0 dizionario di ricerca di testo che rimuove gli accenti
uuid-ossp 1.0 generare identificatori univoci universalmente (UUID)

pg_stat_statements

L'estensione pg_stat_statements viene precaricata in ogni server Database di Azure per PostgreSQL per fornire un mezzo per 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 consentono di connettersi da un server PostgreSQL a un altro o 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 di dati esterne, ad esempio postgres_fdw, non sono supportate, ad eccezione delle connessioni ad altri server Database di Azure per PostgreSQL nella stessa area di Azure.

uuid

Se si prevede di usare uuid_generate_v4() dall'estensione uuid-ossp, prendere in considerazione il confronto con gen_random_uuid() l'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. La prewarming 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 modello portale di Azure, dell'interfaccia della riga di comando, dell'API REST o 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 fornisce timescaleDB Edizione Apache-2.

Installazione di TimescaleDB

Per installare TimescaleDB, è necessario includerlo nelle librerie di precaricamento condiviso del server. Per rendere effettiva una modifica al parametro di shared_preload_libraries 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:

  1. Selezionare il server di Database di Azure per PostgreSQL.

  2. Nella barra laterale selezionare Parametri del server.

  3. Cercare il shared_preload_libraries parametro.

  4. Selezionare TimescaleDB.

  5. Selezionare Salva per mantenere le modifiche. Una volta salvata la modifica, si riceve una notifica.

  6. 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. Connessione al database ed eseguire il comando seguente:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

Suggerimento

Se viene visualizzato un errore, verificare che il server sia stato riavviato dopo il salvataggio 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 scala cronologica tramite 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 database abilitato per la scalabilità cronologica del metodo di ripristino, vedere la documentazione relativa alla scalabilità cronologica

Ripristino di un database di scalabilità temporale usando timescaledb-backup

Durante l'esecuzione della SELECT timescaledb_post_restore() procedura precedente è possibile ottenere autorizzazioni negate durante l'aggiornamento del flag timescaledb.restore. Ciò è dovuto all'autorizzazione ALTER DATABA edizione Standard limitata nei servizi di database PaaS cloud. In questo caso è possibile eseguire un metodo alternativo usando timescaledb-backup lo strumento 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

  1. Installare gli strumenti come descritto qui
  2. Creare un server e un database di destinazione Database di Azure per PostgreSQL
  3. Abilitare l'estensione Scala cronologica come illustrato in precedenza
  4. Concedere azure_pg_admin ruolo all'utente che verrà usato da ts-restore
  5. Eseguire ts-restore per ripristinare il database

Altre informazioni su queste utilità sono disponibili qui.

Nota

Quando si usano timescale-backup utilità per il ripristino in Azure, poiché i nomi utente del database per Database di Azure per PostgresQL non flessibili devono usare il formato , è necessario sostituire @ con %40 la <user@db-name> codifica dei caratteri.

Passaggi successivi

Segnalare a Microsoft la mancanza di un'estensione che si desidera usare. Votare per le richieste esistenti o creare nuove richieste di feedback nel forum di feedback.