Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano, jak usługa Lakebase Postgres jest zgodna ze standardową bazą danych Postgres. Jako zarządzana usługa Postgres, występują pewne różnice i ograniczenia.
Obsługa wersji bazy danych Postgres
Lakebase obsługuje Postgres 16, Postgres 17 i Postgres 18. Postgres 17 jest wersją domyślną. Aby użyć bazy danych Postgres 18, wybierz ją podczas tworzenia nowego projektu.
Obsługa rozszerzenia Postgres
Usługa Lakebase obsługuje wiele rozszerzeń Postgres. Aby uzyskać pełną listę, zobacz Rozszerzenia Postgres.
Sesja, pamięć i magazyn
Kontekst sesji
Funkcja skalowania do zera w usłudze Lakebase automatycznie zamyka bezczynne połączenia po okresie braku aktywności.
Gdy połączenia są zamykane, wszystkie elementy w kontekście sesji, takie jak tabele tymczasowe, przygotowane instrukcje, blokady porad i polecenia NOTIFY i LISTEN , zostaną utracone.
Aby uniknąć utraty kontekstów na poziomie sesji, możesz wyłączyć skalowanie do zera. Jednak oznacza to, że obliczenia działają 24/7.
Memory
Zapytania SQL i kompilacje indeksów mogą generować duże ilości danych, które mogą nie mieścić się w pamięci. Rozmiar obliczeń określa ilość dostępnej pamięci.
Nielogowane tabele
Nielogowane tabele to tabele, które nie zapisują się w dzienniku zapisu z wyprzedzeniem Postgres (WAL). Te tabele są przechowywane w magazynie lokalnym obliczeniowym i nie są utrwalane podczas ponownego uruchamiania obliczeń lub gdy obliczenia są skalowane do zera. Jest to w przeciwieństwie do standardowej bazy danych Postgres, w której tabele nieznakowane są obcinane tylko w przypadku nietypowego zakończenia procesu. Ponadto tabele bez logowania są ograniczone przez lokalną przestrzeń dyskową w obliczeniach. Usługa Lakebase oblicza przydzielenie 20 GiB miejsca na dysku lokalnym lub 15 GiB razy maksymalny rozmiar obliczeniowy (w zależności od tego, co jest najwyższe) dla plików tymczasowych używanych przez usługę Postgres.
Tabele tymczasowe
Tabele tymczasowe istnieją tylko w okresie istnienia sesji (lub opcjonalnie transakcji). Podobnie jak tabele nielogowane, są one przechowywane w lokalnym magazynie obliczeniowej i ograniczone przez miejsce na dysku lokalnym.
Dzienniki bazy danych Postgres
Dostęp do dzienników bazy danych Postgres nie jest obsługiwany.
Zbieranie statystyk
Postgres utrzymuje dwa rodzaje statystyk:
-
Statystyki planera:
ANALYZEgeneruje je i przechowuje w katalogupg_statisticoraz w kolumnachreltuplesipg_classtabelirelpages. Planer zapytań używa ich do szacowania liczby wierszy i wyboru planów realizacji. Statystyki planera są trwale przechowywane wraz z danymi i zachowywane po ponownym uruchomieniu zasobów obliczeniowych lub skalowaniu do zera. -
Statystyki kumulatywne: System statystyk kumulatywnych Postgresa zbiera je i eksponuje za pomocą takich widoków jak
pg_stat_user_tables. Zawierają liczniki wstawionych, zaktualizowanych i usuniętych wierszy, które autovacuum wykorzystuje do decydowania, kiedy odkurzać lub analizować tabelę.
Statystyki skumulowane są zachowywane, gdy zasób obliczeniowy skaluje się do zera lub uruchamia się ponownie bez błędu. Są one resetowane, jeśli zasób obliczeniowy niespodziewanie się zatrzyma, na przykład po awarii lub przełączeniu awaryjnym wysokiej dostępności, albo jeśli dane statystyczne przekraczają 16 MB. Planer zapytań nie używa statystyk kumulatywnych, więc reset nie wpływa na plany zapytań. Po zresetowaniu autovacuum może potrzebować więcej czasu na przetwarzanie tabel, ponieważ liczniki modyfikacji zaczynają się od zera. Możesz uruchomić VACUUM lub ANALYZE ręcznie, jeśli trzeba.
Statystyki zapytań zebrane przez rozszerzenie pg_stat_statements są przechowywane oddzielnie i nie są zachowywane po skalowaniu obliczeń do zera lub ponownym uruchomieniu. Więcej informacji można znaleźć w artykule Data Persistence.
Aby upewnić się, że tabele zawierają dokładne statystyki planera, zobacz statystyki planera Postgres.
Ustawienia parametrów bazy danych Postgres
Jako zarządzana usługa Postgres, wiele parametrów bazy danych jest ustawianych w oparciu o wielkość mocy obliczeniowej. Zobacz wszystkie ustawienia parametrów bazy danych przy użyciu:
SHOW ALL;
Można skonfigurować parametry, które mają user kontekst na poziomie sesji, bazy danych lub roli. Nie można skonfigurować parametrów na poziomie instancji.
Pokaż parametry, które można ustawić na poziomie sesji, bazy danych lub roli.
SELECT name FROM pg_settings WHERE context = 'user';Ustaw parametr dla sesji.
SET maintenance_work_mem='1 GB';Ustaw parametr dla wszystkich sesji połączonych z bazą danych.
ALTER DATABASE databricks_postgres SET maintenance_work_mem='1 GB';Ustaw parametr dla wszystkich sesji od danego użytkownika.
ALTER USER "john@company.com" SET maintenance_work_mem='1 GB';
Kodowanie i sortowanie bazy danych
Kodowanie bazy danych
Domyślnie jest używane sortowanie C.UTF-8. C.UTF-8 obsługuje pełny zakres znaków zakodowanych w formacie UTF-8.
Obsługiwane jest również kodowanie UTF8 (Unicode, kodowanie 8-bitowej zmiennej szerokości).
Aby wyświetlić kodowanie i sortowanie dla bazy danych, uruchom następujące zapytanie:
SELECT
pg_database.datname AS database_name,
pg_encoding_to_char(pg_database.encoding) AS encoding,
pg_database.datcollate AS collation,
pg_database.datctype AS ctype
FROM
pg_database
WHERE
pg_database.datname = 'your_database_name';
Uwaga / Notatka
W usłudze Postgres nie można zmienić kodowania ani sortowania bazy danych po jego utworzeniu.
Zestawienia
Sortowanie to obiekt schematu SQL, który mapuje nazwę SQL na ustawienia regionalne dostarczane przez biblioteki zainstalowane w systemie operacyjnym.
Domyślnie usługa Lakebase używa sortowania C.UTF-8 . Inny dostawca obsługiwany przez usługę Lakebase to icu, który korzysta z zewnętrznej biblioteki ICU .
Usługa Lakebase udostępnia pełną serię wstępnie zdefiniowanych ustawień regionalnych ICU w przypadku, gdy wymagane jest sortowanie specyficzne dla ustawień regionalnych lub konwersje wielkości liter.
- Wyświetl wszystkie wstępnie zdefiniowane ustawienia regionalne:
SELECT * FROM pg_collation;
- Utwórz bazę danych ze wstępnie zdefiniowanymi
icuustawieniami regionalnymi:
CREATE DATABASE my_arabic_db
LOCALE_PROVIDER icu
icu_locale 'ar-x-icu'
template template0;
- Określ ustawienia regionalne dla poszczególnych kolumn:
CREATE TABLE my_ru_table (
id serial PRIMARY KEY,
russian_text_column text COLLATE "ru-x-icu",
description text
);
Ograniczenia funkcjonalności
Role i uprawnienia
- Nie można uzyskać dostępu do systemu operacyjnego hosta.
- Nie można nawiązać połączenia przy użyciu bazy danych Postgres
superuser.- Wszelkie funkcje wymagające
superuseruprawnień lub bezpośredniego dostępu do lokalnego systemu plików nie są dozwolone. - Element
databricks_superuserma miejsce roli Postgressuperuser. Aby uzyskać informacje o uprawnieniach skojarzonych z tą rolą, zobacz Zarządzanie rolami.
- Wszelkie funkcje wymagające
Replikacja
Możesz replikować dane do lub z bazy Lakebase za pomocą natywnej replikacji logycznej Postgres. Więcej informacji można znaleźć w artykule Replikacja logiczna.
Przestrzenie tabel
Usługa Lakebase nie obsługuje przestrzeni tabel Postgres. Próba utworzenia przestrzeni tabel za pomocą CREATE TABLESPACE polecenia powoduje wystąpienie błędu. Wynika to z architektury chmury zarządzanej przez usługę Lakebase, która nie zezwala na bezpośredni dostęp systemu plików do niestandardowych lokalizacji magazynu.
Jeśli masz istniejące aplikacje lub skrypty, które używają przestrzeni tabel do organizowania obiektów bazy danych na różnych urządzeniach magazynujących, należy usunąć lub zmodyfikować te odwołania podczas migracji do usługi Lakebase.