Rozszerzenia PostgreSQL w usłudze Azure Database for PostgreSQL — pojedynczy serwer

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

Baza danych PostgreSQL umożliwia rozszerzanie funkcjonalności bazy danych przy użyciu rozszerzeń. Rozszerzenia zapewniają wiele powiązanych obiektów SQL razem w jednym pakiecie, który można załadować lub usunąć z bazy danych za pomocą jednego polecenia. Po załadowaniu do bazy danych rozszerzenia działają jak wbudowane funkcje.

Jak używać rozszerzeń PostgreSQL

Aby można było ich używać, należy zainstalować rozszerzenia PostgreSQL w bazie danych. Aby zainstalować określone rozszerzenie, uruchom polecenie CREATE EXTENSION (Utwórz rozszerzenie) z poziomu narzędzia psql w celu załadowania spakowanych obiektów do bazy danych.

Usługa Azure Database for PostgreSQL obsługuje podzestaw rozszerzeń kluczy, jak pokazano poniżej. Te informacje są również dostępne, uruchamiając polecenie SELECT * FROM pg_available_extensions;. Rozszerzenia wykraczające poza wymienione na liście nie są obsługiwane. Nie można utworzyć własnego rozszerzenia w usłudze Azure Database for PostgreSQL.

Rozszerzenia bazy danych Postgres 11

Następujące rozszerzenia są dostępne na serwerach usługi Azure Database for PostgreSQL, które mają bazę danych Postgres w wersji 11.

Rozszerzenie Wersja rozszerzenia Opis
address_standardizer 2.5.1 Służy do analizowania adresu do elementów składowych.
address_standardizer_data_us 2.5.1 Przykład zestawu danych Address Standardizer US
btree_gin 1.3 obsługa indeksowania typowych typów danych w gin
btree_gist 1.5 obsługa indeksowania typowych typów danych w giST
tekst citext 1.5 typ danych dla ciągów znaków bez uwzględniania wielkości liter
Moduł 1.4 typ danych dla modułów wielowymiarowych
dblink 1.2 nawiązywanie połączenia z innymi bazami danych PostgreSQL z poziomu bazy danych
dict_int 1.0 szablon słownika wyszukiwania tekstu dla liczb całkowitych
earthdistance 1.1 obliczanie odległości wielkich okręgów na powierzchni Ziemi
rozmycie rozmyte 1.1 określanie podobieństw i odległości między ciągami
hstore 1.5 typ danych do przechowywania zestawów par (klucz, wartość)
niedopgania 1.1.2 Hipotetyczne indeksy dla bazy danych PostgreSQL
intarray 1.2 funkcje, operatory i obsługa indeksów dla tablic 1-W liczb całkowitych
Isn 1.2 typy danych dla międzynarodowych standardów numerowania produktów
ltree 1.1 typ danych dla hierarchicznych struktur przypominających drzewa
orafce 3.7 Funkcje i operatory, które emulują podzbiór funkcji i pakietów z komercyjnych systemów zarządzania relacyjnymi bazami danych
pgaudit 1.3.1 Udostępnia funkcje inspekcji
pgcrypto 1.3 funkcje kryptograficzne
pgrouting 2.6.2 Rozszerzenie pgRouting
pgrowlocks 1.2 pokaż informacje o blokowaniu na poziomie wiersza
pgstattuple 1.5 wyświetlanie statystyk na poziomie krotki
pg_buffercache 1.3 badanie udostępnionej pamięci podręcznej buforu
pg_partman 4.0.0 Rozszerzenie do zarządzania tabelami partycjonowanych według czasu lub identyfikatora
pg_prewarm 1.2 wstępne dane relacyjne
pg_stat_statements 1.6 śledzenie statystyk wykonywania wszystkich wykonanych instrukcji SQL
pg_trgm 1.4 pomiar podobieństwa tekstu i wyszukiwanie indeksów na podstawie trigramów
plpgsql 1.0 Język proceduralny PL/pgSQL
plv8 2.3.11 Zaufany język proceduralny PL/JavaScript (wersja 8)
Postgis 2.5.1 Geometria, geografia i typy przestrzenne i funkcje postGIS
postgis_sfcgal 2.5.1 Funkcje PostGIS SFCGAL
postgis_tiger_geocoder 2.5.1 Geokoder tygrysa PostGIS i odwrotny geokoder
postgis_topology 2.5.1 Funkcje i typy przestrzenne topologii postGIS
postgres_fdw 1.0 otoka danych obcych dla zdalnych serwerów PostgreSQL
tablefunc 1.0 funkcje, które manipulują całymi tabelami, w tym krzyżowe
timescaledb 1.7.4 Umożliwia skalowalne wstawianie i złożone zapytania dotyczące danych szeregów czasowych
unaccent 1.1 słownik wyszukiwania tekstu, który usuwa akcenty
uuid-ossp 1.1 generowanie unikatowych identyfikatorów (UUID)

Rozszerzenia bazy danych Postgres 10

Następujące rozszerzenia są dostępne na serwerach usługi Azure Database for PostgreSQL, które mają bazę danych Postgres w wersji 10.

Rozszerzenie Wersja rozszerzenia Opis
address_standardizer 2.5.1 Służy do analizowania adresu do elementów składowych.
address_standardizer_data_us 2.5.1 Przykład zestawu danych Address Standardizer US
btree_gin 1.3 obsługa indeksowania typowych typów danych w gin
btree_gist 1.5 obsługa indeksowania typowych typów danych w giST
chkpass 1.0 typ danych dla haseł zaszyfrowanych automatycznie
tekst citext 1.4 typ danych dla ciągów znaków bez uwzględniania wielkości liter
Moduł 1.2 typ danych dla modułów wielowymiarowych
dblink 1.2 nawiązywanie połączenia z innymi bazami danych PostgreSQL z poziomu bazy danych
dict_int 1.0 szablon słownika wyszukiwania tekstu dla liczb całkowitych
earthdistance 1.1 obliczanie odległości wielkich okręgów na powierzchni Ziemi
rozmycie rozmyte 1.1 określanie podobieństw i odległości między ciągami
hstore 1.4 typ danych do przechowywania zestawów par (klucz, wartość)
niedopgania 1.1.1 Hipotetyczne indeksy dla bazy danych PostgreSQL
intarray 1.2 funkcje, operatory i obsługa indeksów dla tablic 1-W liczb całkowitych
Isn 1.1 typy danych dla międzynarodowych standardów numerowania produktów
ltree 1.1 typ danych dla hierarchicznych struktur przypominających drzewa
orafce 3.7 Funkcje i operatory, które emulują podzbiór funkcji i pakietów z komercyjnych systemów zarządzania relacyjnymi bazami danych
pgaudit 1.2 Udostępnia funkcje inspekcji
pgcrypto 1.3 funkcje kryptograficzne
pgrouting 2.5.2 Rozszerzenie pgRouting
pgrowlocks 1.2 pokaż informacje o blokowaniu na poziomie wiersza
pgstattuple 1.5 wyświetlanie statystyk na poziomie krotki
pg_buffercache 1.3 badanie udostępnionej pamięci podręcznej buforu
pg_partman 2.6.3 Rozszerzenie do zarządzania tabelami partycjonowanych według czasu lub identyfikatora
pg_prewarm 1.1 wstępne dane relacyjne
pg_stat_statements 1.6 śledzenie statystyk wykonywania wszystkich wykonanych instrukcji SQL
pg_trgm 1.3 pomiar podobieństwa tekstu i wyszukiwanie indeksów na podstawie trigramów
plpgsql 1.0 Język proceduralny PL/pgSQL
plv8 2.1.0 Zaufany język proceduralny PL/JavaScript (wersja 8)
Postgis 2.4.3 Geometria, geografia i typy przestrzenne i funkcje postGIS
postgis_sfcgal 2.4.3 Funkcje PostGIS SFCGAL
postgis_tiger_geocoder 2.4.3 Geokoder tygrysa PostGIS i odwrotny geokoder
postgis_topology 2.4.3 Funkcje i typy przestrzenne topologii postGIS
postgres_fdw 1.0 otoka danych obcych dla zdalnych serwerów PostgreSQL
tablefunc 1.0 funkcje, które manipulują całymi tabelami, w tym krzyżowe
timescaledb 1.7.4 Umożliwia skalowalne wstawianie i złożone zapytania dotyczące danych szeregów czasowych
unaccent 1.1 słownik wyszukiwania tekstu, który usuwa akcenty
uuid-ossp 1.1 generowanie unikatowych identyfikatorów (UUID)

Rozszerzenia postgres 9.6

Następujące rozszerzenia są dostępne na serwerach usługi Azure Database for PostgreSQL, które mają bazę danych Postgres w wersji 9.6.

Rozszerzenie Wersja rozszerzenia Opis
address_standardizer 2.3.2 Służy do analizowania adresu do elementów składowych.
address_standardizer_data_us 2.3.2 Przykład zestawu danych Address Standardizer US
btree_gin 1.0 obsługa indeksowania typowych typów danych w gin
btree_gist 1.2 obsługa indeksowania typowych typów danych w giST
chkpass 1.0 typ danych dla haseł zaszyfrowanych automatycznie
tekst citext 1.3 typ danych dla ciągów znaków bez uwzględniania wielkości liter
Moduł 1.2 typ danych dla modułów wielowymiarowych
dblink 1.2 nawiązywanie połączenia z innymi bazami danych PostgreSQL z poziomu bazy danych
dict_int 1.0 szablon słownika wyszukiwania tekstu dla liczb całkowitych
earthdistance 1.1 obliczanie odległości wielkich okręgów na powierzchni Ziemi
rozmycie rozmyte 1.1 określanie podobieństw i odległości między ciągami
hstore 1.4 typ danych do przechowywania zestawów par (klucz, wartość)
niedopgania 1.1.1 Hipotetyczne indeksy dla bazy danych PostgreSQL
intarray 1.2 funkcje, operatory i obsługa indeksów dla tablic 1-W liczb całkowitych
Isn 1.1 typy danych dla międzynarodowych standardów numerowania produktów
ltree 1.1 typ danych dla hierarchicznych struktur przypominających drzewa
orafce 3.7 Funkcje i operatory, które emulują podzbiór funkcji i pakietów z komercyjnych systemów zarządzania relacyjnymi bazami danych
pgaudit 1.1.2 Udostępnia funkcje inspekcji
pgcrypto 1.3 funkcje kryptograficzne
pgrouting 2.3.2 Rozszerzenie pgRouting
pgrowlocks 1.2 pokaż informacje o blokowaniu na poziomie wiersza
pgstattuple 1.4 wyświetlanie statystyk na poziomie krotki
pg_buffercache 1.2 badanie udostępnionej pamięci podręcznej buforu
pg_partman 2.6.3 Rozszerzenie do zarządzania tabelami partycjonowanych według czasu lub identyfikatora
pg_prewarm 1.1 wstępne dane relacyjne
pg_stat_statements 1.4 śledzenie statystyk wykonywania wszystkich wykonanych instrukcji SQL
pg_trgm 1.3 pomiar podobieństwa tekstu i wyszukiwanie indeksów na podstawie trigramów
plpgsql 1.0 Język proceduralny PL/pgSQL
plv8 2.1.0 Zaufany język proceduralny PL/JavaScript (wersja 8)
Postgis 2.3.2 Geometria, geografia i typy przestrzenne i funkcje postGIS
postgis_sfcgal 2.3.2 Funkcje PostGIS SFCGAL
postgis_tiger_geocoder 2.3.2 Geokoder tygrysa PostGIS i odwrotny geokoder
postgis_topology 2.3.2 Funkcje i typy przestrzenne topologii postGIS
postgres_fdw 1.0 otoka danych obcych dla zdalnych serwerów PostgreSQL
tablefunc 1.0 funkcje, które manipulują całymi tabelami, w tym krzyżowe
timescaledb 1.7.4 Umożliwia skalowalne wstawianie i złożone zapytania dotyczące danych szeregów czasowych
unaccent 1.1 słownik wyszukiwania tekstu, który usuwa akcenty
uuid-ossp 1.1 generowanie unikatowych identyfikatorów (UUID)

Rozszerzenia postgres 9.5

Uwaga

Program PostgreSQL w wersji 9.5 został wycofany.

Następujące rozszerzenia są dostępne na serwerach usługi Azure Database for PostgreSQL, które mają bazę danych Postgres w wersji 9.5.

Rozszerzenie Wersja rozszerzenia Opis
address_standardizer 2.3.0 Służy do analizowania adresu do elementów składowych.
address_standardizer_data_us 2.3.0 Przykład zestawu danych Address Standardizer US
btree_gin 1.0 obsługa indeksowania typowych typów danych w gin
btree_gist 1.1 obsługa indeksowania typowych typów danych w giST
chkpass 1.0 typ danych dla haseł zaszyfrowanych automatycznie
tekst citext 1.1 typ danych dla ciągów znaków bez uwzględniania wielkości liter
Moduł 1.0 typ danych dla modułów wielowymiarowych
dblink 1.1 nawiązywanie połączenia z innymi bazami danych PostgreSQL z poziomu bazy danych
dict_int 1.0 szablon słownika wyszukiwania tekstu dla liczb całkowitych
earthdistance 1.0 obliczanie odległości wielkich okręgów na powierzchni Ziemi
rozmycie rozmyte 1.0 określanie podobieństw i odległości między ciągami
hstore 1.3 typ danych do przechowywania zestawów par (klucz, wartość)
niedopgania 1.1.1 Hipotetyczne indeksy dla bazy danych PostgreSQL
intarray 1.0 funkcje, operatory i obsługa indeksów dla tablic 1-W liczb całkowitych
Isn 1.0 typy danych dla międzynarodowych standardów numerowania produktów
ltree 1.0 typ danych dla hierarchicznych struktur przypominających drzewa
orafce 3.7 Funkcje i operatory, które emulują podzbiór funkcji i pakietów z komercyjnych systemów zarządzania relacyjnymi bazami danych
pgaudit 1.0.7 Udostępnia funkcje inspekcji
pgcrypto 1.2 funkcje kryptograficzne
pgrouting 2.3.0 Rozszerzenie pgRouting
pgrowlocks 1.1 pokaż informacje o blokowaniu na poziomie wiersza
pgstattuple 1.3 wyświetlanie statystyk na poziomie krotki
pg_buffercache 1.1 badanie udostępnionej pamięci podręcznej buforu
pg_partman 2.6.3 Rozszerzenie do zarządzania tabelami partycjonowanych według czasu lub identyfikatora
pg_prewarm 1.0 wstępne dane relacyjne
pg_stat_statements 1.3 śledzenie statystyk wykonywania wszystkich wykonanych instrukcji SQL
pg_trgm 1.1 pomiar podobieństwa tekstu i wyszukiwanie indeksów na podstawie trigramów
plpgsql 1.0 Język proceduralny PL/pgSQL
Postgis 2.3.0 Geometria, geografia i typy przestrzenne i funkcje postGIS
postgis_sfcgal 2.3.0 Funkcje PostGIS SFCGAL
postgis_tiger_geocoder 2.3.0 Geokoder tygrysa PostGIS i odwrotny geokoder
postgis_topology 2.3.0 Funkcje i typy przestrzenne topologii postGIS
postgres_fdw 1.0 otoka danych obcych dla zdalnych serwerów PostgreSQL
tablefunc 1.0 funkcje, które manipulują całymi tabelami, w tym krzyżowe
unaccent 1.0 słownik wyszukiwania tekstu, który usuwa akcenty
uuid-ossp 1.0 generowanie unikatowych identyfikatorów (UUID)

pg_stat_statements

Rozszerzenie pg_stat_statements jest wstępnie ładowane na każdym serwerze usługi Azure Database for PostgreSQL w celu zapewnienia sposobu śledzenia statystyk wykonywania instrukcji SQL. Ustawienie pg_stat_statements.track, które kontroluje, które instrukcje są liczone przez rozszerzenie, domyślnie ma wartość , co oznacza, że wszystkie instrukcje topwydane bezpośrednio przez klientów są śledzone. Dwa pozostałe poziomy śledzenia to none i all. To ustawienie można skonfigurować jako parametr serwera za pośrednictwem witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Istnieje związek między informacjami o wykonywaniu zapytań dostarczanymi przez rozszerzenie pg_stat_statements a wpływem na wydajność serwera, ponieważ to rozszerzenie rejestruje każdą instrukcję SQL. Jeśli nie korzystasz aktywnie z rozszerzenia pg_stat_statements, zalecamy ustawienie wartości pg_stat_statements.tracknone. Należy pamiętać, że niektóre usługi monitorowania innych firm mogą polegać na pg_stat_statements w celu dostarczania szczegółowych informacji o wydajności zapytań, dlatego upewnij się, czy tak jest dla Ciebie, czy nie.

dblink i postgres_fdw umożliwiają nawiązywanie połączenia z jednego serwera PostgreSQL z inną bazą danych lub z inną bazą danych na tym samym serwerze. Serwer odbierający musi zezwalać na połączenia z serwera wysyłającego przez zaporę. W przypadku używania tych rozszerzeń do nawiązywania połączenia między serwerami usługi Azure Database for PostgreSQL można to zrobić, ustawiając wartość "Zezwalaj na dostęp do usług platformy Azure". Jest to również konieczne, jeśli chcesz użyć rozszerzeń, aby pętli z powrotem do tego samego serwera. Ustawienie "Zezwalaj na dostęp do usług platformy Azure" można znaleźć na stronie witryny Azure Portal serwera Postgres w obszarze zabezpieczenia Połączenie ion. Włączenie opcji "Zezwalaj na dostęp do usług platformy Azure" powoduje przełączenie wszystkich adresów IP platformy Azure na listę dozwolonych.

Uwaga

Obecnie połączenia wychodzące z usługi Azure Database for PostgreSQL za pośrednictwem obcych rozszerzeń otoki danych, takich jak postgres_fdw, nie są obsługiwane, z wyjątkiem połączeń z innymi serwerami usługi Azure Database for PostgreSQL w tym samym regionie świadczenia usługi Azure.

uuid

Jeśli planujesz użyć rozszerzenia uuid_generate_v4()uuid-ossp, rozważ porównanie z gen_random_uuid()rozszerzeniem pgcrypto w celu uzyskania korzyści z wydajności.

pgAudit

Rozszerzenie pgAudit udostępnia rejestrowanie sesji i inspekcji obiektów. Aby dowiedzieć się, jak używać tego rozszerzenia w usłudze Azure Database for PostgreSQL, zapoznaj się z artykułem dotyczącym pojęć dotyczących inspekcji.

pg_prewarm

Rozszerzenie pg_prewarm ładuje dane relacyjne do pamięci podręcznej. Wstępne tworzenie pamięci podręcznych oznacza, że zapytania mają lepsze czasy odpowiedzi podczas pierwszego uruchomienia po ponownym uruchomieniu. W przypadku bazy danych Postgres 10 i nowszych wstępne jest wykonywane ręcznie przy użyciu funkcji prewarm.

W usłudze Postgres 11 i nowszych można skonfigurować wstępne wdrażanie automatycznie. Musisz uwzględnić pg_prewarm na shared_preload_libraries liście parametrów i ponownie uruchomić serwer, aby zastosować zmianę. Parametry można ustawić za pomocą witryny Azure Portal, interfejsu wiersza polecenia, interfejsu API REST lub szablonu usługi ARM.

Baza danych TimescaleDB

TimescaleDB to baza danych szeregów czasowych spakowana jako rozszerzenie dla bazy danych PostgreSQL. Baza danych TimescaleDB zapewnia funkcje analityczne, optymalizacje i skalowanie bazy danych Postgres dla obciążeń szeregów czasowych.

Dowiedz się więcej na temat bazy danych TimescaleDB, zarejestrowanego znaku towarowego Timescale, Inc.. Usługa Azure Database for PostgreSQL udostępnia wersję Apache-2 bazy danych TimescaleDB.

Instalowanie bazy danych TimescaleDB

Aby zainstalować bazę danych TimescaleDB, należy uwzględnić ją w udostępnionych bibliotekach wstępnego ładowania serwera. Zmiana parametru shared_preload_libraries bazy danych Postgres wymaga , aby ponowne uruchomienie serwera miało zastosowanie. Parametry można zmienić przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Korzystanie z witryny Azure Portal:

  1. Wybierz serwer usługi Azure Database for PostgreSQL.

  2. Na pasku bocznym wybierz pozycję Parametry serwera.

  3. shared_preload_libraries Wyszukaj parametr .

  4. Wybierz pozycję TimescaleDB.

  5. Wybierz pozycję Zapisz , aby zachować zmiany. Po zapisaniu zmiany otrzymasz powiadomienie.

  6. Po powiadomieniu uruchom ponownie serwer, aby zastosować te zmiany. Aby dowiedzieć się, jak ponownie uruchomić serwer, zobacz Ponowne uruchamianie serwera usługi Azure Database for PostgreSQL.

Teraz możesz włączyć bazę danych TimescaleDB w bazie danych Postgres. Połączenie do bazy danych i wydaj następujące polecenie:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

Napiwek

Jeśli zostanie wyświetlony błąd, upewnij się, że serwer został uruchomiony ponownie po zapisaniu shared_preload_libraries.

Teraz możesz utworzyć hipertable bazy danych TimescaleDB od podstaw lub zmigrować istniejące dane szeregów czasowych w usłudze PostgreSQL.

Przywracanie bazy danych w skali czasu przy użyciu pg_dump i pg_restore

Aby przywrócić bazę danych w skali czasu przy użyciu pg_dump i pg_restore, należy uruchomić dwie procedury pomocnicze w docelowej bazie danych: timescaledb_pre_restore() i timescaledb_post restore().

Najpierw przygotuj docelową bazę danych:

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

Teraz możesz uruchomić pg_dump w oryginalnej bazie danych, a następnie wykonać pg_restore. Po przywróceniu pamiętaj, aby uruchomić następujące polecenie w przywróconej bazie danych:

SELECT timescaledb_post_restore();

Aby uzyskać więcej informacji na temat metody przywracania with Timescale enabled database(Baza danych z włączoną skalą czasu), zobacz dokumentację usługi Timescale

Przywracanie bazy danych Timescale przy użyciu polecenia timescaledb-backup

Podczas uruchamiania SELECT timescaledb_post_restore() procedury wymienionej powyżej możesz uzyskać błąd odmowy uprawnień podczas aktualizowania flagi timescaledb.restoring. Jest to spowodowane ograniczonymi uprawnieniami ALTER DATABASE w usługach baz danych PaaS w chmurze. W takim przypadku można wykonać alternatywną metodę przy użyciu timescaledb-backup narzędzia do tworzenia kopii zapasowych i przywracania bazy danych w skali czasu. Kopia zapasowa bazy danych Timescaledb to program umożliwiający zrzucanie i przywracanie bazy danych TimescaleDB prostsze, mniej podatne na błędy i bardziej wydajne. W tym celu należy wykonać następujące czynności

  1. Zainstaluj narzędzia zgodnie z opisem w tym miejscu
  2. Tworzenie docelowego serwera i bazy danych usługi Azure Database for PostgreSQL
  3. Włącz rozszerzenie skali czasu, jak pokazano powyżej
  4. Udzielanie roli azure_pg_admin użytkownikowi, który będzie używany przez funkcję ts-restore
  5. Uruchamianie funkcji ts-restore w celu przywrócenia bazy danych

Więcej informacji na temat tych narzędzi można znaleźć tutaj.

Uwaga

W przypadku korzystania z timescale-backup narzędzi do przywracania na platformę Azure jest to, że ponieważ nazwy użytkowników bazy danych dla nieelasnej usługi Azure Database for PostgresQL muszą używać <user@db-name> formatu, musisz zastąpić @%40 kodowaniem znaków.

Następne kroki

Jeśli nie widzisz rozszerzenia, którego chcesz użyć, daj nam znać. Zagłosuj na istniejące żądania lub utwórz nowe żądania opinii na naszym forum opinii.