Rozšíření serveru PostgreSQL v Azure Database for PostgreSQL – jeden server

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

PostgreSQL poskytuje možnost rozšířit funkce databáze pomocí rozšíření. Rozšíření je balíček, který vznikne sloučením několika souvisejících objektů SQL. Tento balíček můžete jedním příkazem do databáze načíst nebo ho z ní odebrat. Po načtení do databáze rozšíření fungují jako integrované funkce.

Jak používat rozšíření PostgreSQL

Než je budete moct používat, musíte do databáze nainstalovat rozšíření PostgreSQL. Pokud chcete určité rozšíření nainstalovat, spusťte nástrojem psql příkaz CREATE EXTENSION, který do databáze načte zabalené objekty.

Azure Database for PostgreSQL podporuje podmnožinu rozšíření klíčů, jak je uvedeno níže. Tyto informace jsou k dispozici také spuštěním SELECT * FROM pg_available_extensions;příkazu . Rozšíření nad rámec uvedených se nepodporují. Ve službě Azure Database for PostgreSQL nemůžete vytvořit vlastní rozšíření.

Rozšíření Postgres 11

Následující rozšíření jsou k dispozici na serverech Azure Database for PostgreSQL, které mají Postgres verze 11.

Rozšíření Verze rozšíření Popis
address_standardizer 2.5.1 Používá se k analýze adresy do základních prvků.
address_standardizer_data_us 2.5.1 Příklad datové sady Standardizer v USA
btree_gin 1.3 podpora indexování běžných datových typů v GIN
btree_gist 1.5 podpora indexování běžných datových typů v GiST
citext 1.5 datový typ pro řetězce znaků bez rozlišování malých a velkých písmen
Datové krychle 1.4 datový typ pro multidimenzionální datové krychle
dblink 1.2 připojení k jiným databázím PostgreSQL z databáze
dict_int 1.0 Šablona slovníku pro vyhledávání textu pro celá čísla
zemitost 1,1 výpočet vzdáleností velkého kruhu na povrchu Země
fuzzystrmatch 1,1 určení podobností a vzdálenosti mezi řetězci
hstore 1.5 datový typ pro ukládání sad párů (klíč, hodnota)
hypopg 1.1.2 Hypotetické indexy pro PostgreSQL
intarray 1.2 funkce, operátory a podpora indexu pro 1D pole celých čísel
1.2 datové typy pro mezinárodní standardy číslování výrobků
Ltree 1,1 datový typ pro hierarchické stromové struktury
orafce 3.7 Funkce a operátory, které emulují podmnožinu funkcí a balíčků z komerčních systémů pro správu relačních databází
pgaudit 1.3.1 poskytuje funkce auditování.
pgcrypto 1.3 kryptografické funkce
pgrouting 2.6.2 rozšíření pgRouting
pgrowlocks 1.2 zobrazit informace o uzamčení na úrovni řádků
pgstattuple 1.5 zobrazení statistiky na úrovni řazené kolekce členů
pg_buffercache 1.3 prozkoumání mezipaměti sdílené vyrovnávací paměti
pg_partman 4.0.0 Rozšíření pro správu dělených tabulek podle času nebo ID
pg_prewarm 1.2 předwarmová relační data
pg_stat_statements 1.6 sledování statistik provádění všech spuštěných příkazů SQL
pg_trgm 1.4 měření podobnosti textu a vyhledávání indexů na základě trigramů
plpgsql 1.0 Procedurální jazyk PL/pgSQL
plv8 2.3.11 Důvěryhodný procedurální jazyk PL/JavaScript (v8)
postgis 2.5.1 Geometrie PostGIS, geografie a rastrové prostorové typy a funkce
postgis_sfcgal 2.5.1 Funkce PostGIS SFCGAL
postgis_tiger_geocoder 2.5.1 PostGIS tiger geocoder a reverzní geokódér
postgis_topology 2.5.1 Prostorové typy a funkce topologie PostGIS
postgres_fdw 1.0 obálka cizích dat pro vzdálené servery PostgreSQL
tablefunc 1.0 funkce, které manipulují s celými tabulkami, včetně křížových tabulek
timescaledb 1.7.4 Umožňuje škálovatelné vkládání a složité dotazy pro data časových řad.
unaccent 1,1 Slovník pro vyhledávání textu, který odebere zvýraznění
uuid-ossp 1,1 generování univerzálních jedinečných identifikátorů (UUID)

Rozšíření Postgres 10

Následující rozšíření jsou k dispozici na serverech Azure Database for PostgreSQL, které mají Postgres verze 10.

Rozšíření Verze rozšíření Popis
address_standardizer 2.5.1 Používá se k analýze adresy do základních prvků.
address_standardizer_data_us 2.5.1 Příklad datové sady Standardizer v USA
btree_gin 1.3 podpora indexování běžných datových typů v GIN
btree_gist 1.5 podpora indexování běžných datových typů v GiST
chkpass 1.0 datový typ pro automaticky šifrovaná hesla
citext 1.4 datový typ pro řetězce znaků bez rozlišování malých a velkých písmen
Datové krychle 1.2 datový typ pro multidimenzionální datové krychle
dblink 1.2 připojení k jiným databázím PostgreSQL z databáze
dict_int 1.0 Šablona slovníku pro vyhledávání textu pro celá čísla
zemitost 1,1 výpočet vzdáleností velkého kruhu na povrchu Země
fuzzystrmatch 1,1 určení podobností a vzdálenosti mezi řetězci
hstore 1.4 datový typ pro ukládání sad párů (klíč, hodnota)
hypopg 1.1.1 Hypotetické indexy pro PostgreSQL
intarray 1.2 funkce, operátory a podpora indexu pro 1D pole celých čísel
1,1 datové typy pro mezinárodní standardy číslování výrobků
Ltree 1,1 datový typ pro hierarchické stromové struktury
orafce 3.7 Funkce a operátory, které emulují podmnožinu funkcí a balíčků z komerčních systémů pro správu relačních databází
pgaudit 1.2 poskytuje funkce auditování.
pgcrypto 1.3 kryptografické funkce
pgrouting 2.5.2 rozšíření pgRouting
pgrowlocks 1.2 zobrazit informace o uzamčení na úrovni řádků
pgstattuple 1.5 zobrazení statistiky na úrovni řazené kolekce členů
pg_buffercache 1.3 prozkoumání mezipaměti sdílené vyrovnávací paměti
pg_partman 2.6.3 Rozšíření pro správu dělených tabulek podle času nebo ID
pg_prewarm 1,1 předwarmová relační data
pg_stat_statements 1.6 sledování statistik provádění všech spuštěných příkazů SQL
pg_trgm 1.3 měření podobnosti textu a vyhledávání indexů na základě trigramů
plpgsql 1.0 Procedurální jazyk PL/pgSQL
plv8 2.1.0 Důvěryhodný procedurální jazyk PL/JavaScript (v8)
postgis 2.4.3 Geometrie PostGIS, geografie a rastrové prostorové typy a funkce
postgis_sfcgal 2.4.3 Funkce PostGIS SFCGAL
postgis_tiger_geocoder 2.4.3 PostGIS tiger geocoder a reverzní geokódér
postgis_topology 2.4.3 Prostorové typy a funkce topologie PostGIS
postgres_fdw 1.0 obálka cizích dat pro vzdálené servery PostgreSQL
tablefunc 1.0 funkce, které manipulují s celými tabulkami, včetně křížových tabulek
timescaledb 1.7.4 Umožňuje škálovatelné vkládání a složité dotazy pro data časových řad.
unaccent 1,1 Slovník pro vyhledávání textu, který odebere zvýraznění
uuid-ossp 1,1 generování univerzálních jedinečných identifikátorů (UUID)

Rozšíření Postgres 9.6

Následující rozšíření jsou k dispozici na serverech Azure Database for PostgreSQL, které mají Postgres verze 9.6.

Rozšíření Verze rozšíření Popis
address_standardizer 2.3.2 Používá se k analýze adresy do základních prvků.
address_standardizer_data_us 2.3.2 Příklad datové sady Standardizer v USA
btree_gin 1.0 podpora indexování běžných datových typů v GIN
btree_gist 1.2 podpora indexování běžných datových typů v GiST
chkpass 1.0 datový typ pro automaticky šifrovaná hesla
citext 1.3 datový typ pro řetězce znaků bez rozlišování malých a velkých písmen
Datové krychle 1.2 datový typ pro multidimenzionální datové krychle
dblink 1.2 připojení k jiným databázím PostgreSQL z databáze
dict_int 1.0 Šablona slovníku pro vyhledávání textu pro celá čísla
zemitost 1,1 výpočet vzdáleností velkého kruhu na povrchu Země
fuzzystrmatch 1,1 určení podobností a vzdálenosti mezi řetězci
hstore 1.4 datový typ pro ukládání sad párů (klíč, hodnota)
hypopg 1.1.1 Hypotetické indexy pro PostgreSQL
intarray 1.2 funkce, operátory a podpora indexu pro 1D pole celých čísel
1,1 datové typy pro mezinárodní standardy číslování výrobků
Ltree 1,1 datový typ pro hierarchické stromové struktury
orafce 3.7 Funkce a operátory, které emulují podmnožinu funkcí a balíčků z komerčních systémů pro správu relačních databází
pgaudit 1.1.2 poskytuje funkce auditování.
pgcrypto 1.3 kryptografické funkce
pgrouting 2.3.2 rozšíření pgRouting
pgrowlocks 1.2 zobrazit informace o uzamčení na úrovni řádků
pgstattuple 1.4 zobrazení statistiky na úrovni řazené kolekce členů
pg_buffercache 1.2 prozkoumání mezipaměti sdílené vyrovnávací paměti
pg_partman 2.6.3 Rozšíření pro správu dělených tabulek podle času nebo ID
pg_prewarm 1,1 předwarmová relační data
pg_stat_statements 1.4 sledování statistik provádění všech spuštěných příkazů SQL
pg_trgm 1.3 měření podobnosti textu a vyhledávání indexů na základě trigramů
plpgsql 1.0 Procedurální jazyk PL/pgSQL
plv8 2.1.0 Důvěryhodný procedurální jazyk PL/JavaScript (v8)
postgis 2.3.2 Geometrie PostGIS, geografie a rastrové prostorové typy a funkce
postgis_sfcgal 2.3.2 Funkce PostGIS SFCGAL
postgis_tiger_geocoder 2.3.2 PostGIS tiger geocoder a reverzní geokódér
postgis_topology 2.3.2 Prostorové typy a funkce topologie PostGIS
postgres_fdw 1.0 obálka cizích dat pro vzdálené servery PostgreSQL
tablefunc 1.0 funkce, které manipulují s celými tabulkami, včetně křížových tabulek
timescaledb 1.7.4 Umožňuje škálovatelné vkládání a složité dotazy pro data časových řad.
unaccent 1,1 Slovník pro vyhledávání textu, který odebere zvýraznění
uuid-ossp 1,1 generování univerzálních jedinečných identifikátorů (UUID)

Rozšíření Postgres 9.5

Poznámka:

PostgreSQL verze 9.5 byla vyřazena.

Následující rozšíření jsou k dispozici na serverech Azure Database for PostgreSQL, které mají Postgres verze 9.5.

Rozšíření Verze rozšíření Popis
address_standardizer 2.3.0 Používá se k analýze adresy do základních prvků.
address_standardizer_data_us 2.3.0 Příklad datové sady Standardizer v USA
btree_gin 1.0 podpora indexování běžných datových typů v GIN
btree_gist 1,1 podpora indexování běžných datových typů v GiST
chkpass 1.0 datový typ pro automaticky šifrovaná hesla
citext 1,1 datový typ pro řetězce znaků bez rozlišování malých a velkých písmen
Datové krychle 1.0 datový typ pro multidimenzionální datové krychle
dblink 1,1 připojení k jiným databázím PostgreSQL z databáze
dict_int 1.0 Šablona slovníku pro vyhledávání textu pro celá čísla
zemitost 1.0 výpočet vzdáleností velkého kruhu na povrchu Země
fuzzystrmatch 1.0 určení podobností a vzdálenosti mezi řetězci
hstore 1.3 datový typ pro ukládání sad párů (klíč, hodnota)
hypopg 1.1.1 Hypotetické indexy pro PostgreSQL
intarray 1.0 funkce, operátory a podpora indexu pro 1D pole celých čísel
1.0 datové typy pro mezinárodní standardy číslování výrobků
Ltree 1.0 datový typ pro hierarchické stromové struktury
orafce 3.7 Funkce a operátory, které emulují podmnožinu funkcí a balíčků z komerčních systémů pro správu relačních databází
pgaudit 1.0.7 poskytuje funkce auditování.
pgcrypto 1.2 kryptografické funkce
pgrouting 2.3.0 rozšíření pgRouting
pgrowlocks 1,1 zobrazit informace o uzamčení na úrovni řádků
pgstattuple 1.3 zobrazení statistiky na úrovni řazené kolekce členů
pg_buffercache 1,1 prozkoumání mezipaměti sdílené vyrovnávací paměti
pg_partman 2.6.3 Rozšíření pro správu dělených tabulek podle času nebo ID
pg_prewarm 1.0 předwarmová relační data
pg_stat_statements 1.3 sledování statistik provádění všech spuštěných příkazů SQL
pg_trgm 1,1 měření podobnosti textu a vyhledávání indexů na základě trigramů
plpgsql 1.0 Procedurální jazyk PL/pgSQL
postgis 2.3.0 Geometrie PostGIS, geografie a rastrové prostorové typy a funkce
postgis_sfcgal 2.3.0 Funkce PostGIS SFCGAL
postgis_tiger_geocoder 2.3.0 PostGIS tiger geocoder a reverzní geokódér
postgis_topology 2.3.0 Prostorové typy a funkce topologie PostGIS
postgres_fdw 1.0 obálka cizích dat pro vzdálené servery PostgreSQL
tablefunc 1.0 funkce, které manipulují s celými tabulkami, včetně křížových tabulek
unaccent 1.0 Slovník pro vyhledávání textu, který odebere zvýraznění
uuid-ossp 1.0 generování univerzálních jedinečných identifikátorů (UUID)

pg_stat_statements

Rozšíření pg_stat_statements se předem načte na každý server Azure Database for PostgreSQL, aby vám poskytlo způsob sledování statistik provádění příkazů SQL. Nastavení pg_stat_statements.track, které řídí, jaké příkazy jsou počítány rozšířením, výchozí nastavení , což znamená, že všechny příkazy topvydané přímo klienty jsou sledovány. Dvě další úrovně sledování jsou none a all. Toto nastavení je konfigurovatelné jako parametr serveru prostřednictvím webu Azure Portal nebo Azure CLI.

Je potřeba najít kompromis mezi informacemi o spouštění dotazů, které poskytuje rozšíření pg_stat_statements, a dopadem na výkon serveru při protokolování jednotlivých příkazů SQL. Pokud rozšíření pg_stat_statements aktivně nepoužíváte, doporučujeme nastavit pg_stat_statements.track hodnotu none. Upozorňujeme, že některé monitorovací služby třetích stran se můžou při poskytování přehledů výkonu dotazů spoléhat na pg_stat_statements, takže ověřte, jestli se jedná o případ za vás, nebo ne.

dblink a postgres_fdw umožňují připojení z jednoho serveru PostgreSQL k jinému nebo k jiné databázi na stejném serveru. Přijímající server musí povolit připojení z odesílajícího serveru přes bránu firewall. Pokud tato rozšíření používáte pro připojení mezi servery Azure Database for PostgreSQL, můžete to provést nastavením Povolit přístup ke službám Azure na ZAPNUTO. To je také potřeba, pokud chcete použít rozšíření pro smyčku zpět na stejný server. Nastavení Povolit přístup ke službám Azure najdete na stránce webu Azure Portal pro server Postgres v části Připojení ion Security. Zapnutím možnosti Povolit přístup ke službám Azure se všechny IP adresy Azure umístí do seznamu povolených.

Poznámka:

V současné době se odchozí připojení ze služby Azure Database for PostgreSQL prostřednictvím rozšíření cizích datových obálky, jako jsou postgres_fdw, nepodporují, s výjimkou připojení k jiným serverům Azure Database for PostgreSQL ve stejné oblasti Azure.

Uuid

Pokud plánujete použít uuid_generate_v4() rozšíření uuid-ossp, zvažte porovnání s gen_random_uuid() rozšířením pgcrypto z hlediska výhod výkonu.

pgAudit

Rozšíření pgAudit poskytuje protokolování auditu relací a objektů. Informace o použití tohoto rozšíření ve službě Azure Database for PostgreSQL najdete v článku o konceptech auditování.

pg_prewarm

Rozšíření pg_prewarm načte relační data do mezipaměti. Předběžné sestavení mezipamětí znamená, že vaše dotazy mají lepší dobu odezvy při prvním spuštění po restartování. V Postgresu 10 a níže se předběžné vytváření provádí ručně pomocí předwarmové funkce.

V Postgresu 11 a novějších můžete nakonfigurovat automatické předváděné vytváření. Musíte zahrnout pg_prewarm do shared_preload_libraries seznamu parametrů a restartovat server, aby se změna použila. Parametry je možné nastavit z webu Azure Portal, rozhraní příkazového řádku, rozhraní REST API nebo šablony ARM.

TimescaleDB

TimescaleDB je databáze časových řad, která je zabalená jako rozšíření pro PostgreSQL. TimescaleDB poskytuje časově orientované analytické funkce, optimalizace a škálování Postgres pro úlohy časových řad.

Přečtěte si další informace o TimescaleDB, registrované ochranné známce společnosti Timescale, Inc.. Azure Database for PostgreSQL poskytuje edici TimescaleDB Apache-2.

Instalace služby TimescaleDB

Pokud chcete nainstalovat TimescaleDB, musíte ji zahrnout do sdílených knihoven předběžného načtení serveru. Změna parametru shared_preload_libraries Postgres vyžaduje , aby se projevilo restartování serveru. Parametry můžete změnit pomocí webu Azure Portal nebo Azure CLI.

Pomocí webu Azure Portal:

  1. Vyberte svůj server Azure Database for PostgreSQL.

  2. Na bočním panelu vyberte Parametry serveru.

  3. Vyhledejte shared_preload_libraries parametr.

  4. Vyberte TimescaleDB.

  5. Chcete-li zachovat změny, vyberte Uložit . Jakmile se změna uloží, zobrazí se oznámení.

  6. Po oznámení restartujte server, aby se tyto změny použily. Informace o restartování serveru najdete v tématu Restartování serveru Azure Database for PostgreSQL.

Ve své databázi Postgres teď můžete povolit TimescaleDB. Připojení do databáze a zadejte následující příkaz:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

Tip

Pokud se zobrazí chyba, po uložení shared_preload_libraries potvrďte, že jste server restartovali.

Teď můžete vytvořit hypertable timescaleDB úplně od začátku nebo migrovat stávající data časových řad v PostgreSQL.

Obnovení databáze časové osy pomocí pg_dump a pg_restore

Pokud chcete obnovit databázi časové osy pomocí pg_dump a pg_restore, musíte v cílové databázi spustit dva pomocné postupy: timescaledb_pre_restore() a timescaledb_post restore().

Nejprve připravte cílovou databázi:

--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();

Teď můžete spustit pg_dump v původní databázi a pak provést pg_restore. Po obnovení nezapomeňte v obnovené databázi spustit následující příkaz:

SELECT timescaledb_post_restore();

Další podrobnosti o metodě obnovení s povolenou databází časové osy najdete v dokumentaci k časovému měřítku.

Obnovení databáze Timescale s využitím nástroje timescaledb-backup

Při spuštění SELECT timescaledb_post_restore() výše uvedeného postupu se může zobrazit chyba odepření oprávnění při aktualizaci příznaku timescaledb.restoring. Důvodem je omezené oprávnění ALTER DATABASE v databázových službách Cloud PaaS. V takovém případě můžete pomocí nástroje provést alternativní metodu timescaledb-backup zálohování a obnovení databáze časové osy. Timescaledb-backup je program pro jednodušší dumping a obnovení databáze TimescaleDB, méně náchylné k chybám a výkonnější. Pokud to chcete udělat, měli byste postupovat následovně:

  1. Tady najdete podrobné informace o instalaci nástrojů.
  2. Vytvoření cílového serveru a databáze Azure Database for PostgreSQL
  3. Povolení rozšíření časové osy, jak je znázorněno výše
  4. Udělení azure_pg_admin role uživateli, který bude používat ts-restore
  5. Spuštění příkazu ts-restore pro obnovení databáze

Další podrobnosti o těchto nástrojích najdete tady.

Poznámka:

Pokud k obnovení do Azure používáte timescale-backup nástroje, je to, že vzhledem k tomu, že uživatelská jména databáze pro neflexibilní databázi Azure Database for PostgresQL musí používat <user@db-name> formát, musíte nahradit @ kódováním %40 znaků.

Další kroky

Pokud nevidíte rozšíření, které chcete použít, dejte nám vědět. Hlasujte pro stávající žádosti nebo vytvořte nové žádosti o zpětnou vazbu na našem fóru pro zpětnou vazbu.