Sdílet prostřednictvím


Kompatibilita Postgres

Důležité

Automatické škálování LakeBase je v beta verzích v následujících oblastech: eastus2, westeurope, westus.

Automatické škálování LakeBase je nejnovější verze LakeBase s automatickým škálováním výpočetních prostředků, škálováním na nulu, větvení a okamžitým obnovením. Porovnání funkcí se službou Lakebase Provisioned najdete v tématu Volba mezi verzemi.

Tato stránka popisuje, jak je Lakebase Postgres kompatibilní se standardem Postgres. Jako spravovaná služba Postgres existuje několik rozdílů a omezení.

Podpora verzí Postgres

Automatické škálování LakeBase podporuje Postgres 16 a Postgres 17.

Podpora rozšíření Postgres

Lakebase podporuje řadu rozšíření Postgres. Úplný seznam najdete v tématu Rozšíření Postgres.

Relace, paměť a úložiště

Kontext relace

Funkce Lakebase škálování na nulu automaticky zavře nečinná připojení po určité době nečinnosti.

Při zavření připojení se ztratí vše v kontextu relace, jako jsou dočasné tabulky, připravené příkazy, poradní zámky a příkazy NOTIFY a LISTEN.

Pokud se chcete vyhnout ztrátě kontextu na úrovni relace, můžete zakázat škálování na nulu. To ale znamená, že vaše výpočetní prostředky běží 24/7.

Memory

Dotazy SQL a sestavení indexů můžou generovat velké objemy dat, která se nemusí vejít do paměti. Velikost výpočetních prostředků určuje množství dostupné paměti.

Nepřilogované tabulky

Neprotokolované tabulky jsou tabulky, které nezapisují do předběžného logování Postgresu (WAL). Tyto tabulky jsou uložené v místním úložišti výpočetních prostředků a nejsou zachovány napříč restartováními výpočetních prostředků nebo při škálování výpočetních prostředků na nulu. Je to na rozdíl od standardu Postgres, kdy se nepřilogované tabulky zkrátí pouze v případě neobvyklého ukončení procesu. Tabulky, které nejsou protokolované, jsou navíc omezené místem na místním úložišti výpočetního systému. Lakebase přiděluje 20 GiB místa na místním disku nebo 15 GiB krát maximální velikost výpočetních prostředků (podle toho, co je nejvyšší) pro dočasné soubory používané postgresem.

Dočasné tabulky

Dočasné tabulky existují pouze po dobu trvání relace (nebo případně transakce). Podobně jako neulogované tabulky jsou uložené ve výpočetním místním úložišti a jsou omezené místem na místním disku.

Protokoly Postgres

Přístup k protokolům Postgres se nepodporuje.

Shromažďování statistik

Statistiky shromážděné kumulativním systémem statistik Postgres se neuloží, když se výpočetní instance (kde se Postgres spouští) škáluje na nulu. Pokud se chcete vyhnout ztrátě statistik, můžete zakázat funkci škálování na nulu. Zakázání škálování na nulu ale také znamená, že výpočetní prostředky budou spuštěny 24/7.

Nastavení parametru Postgres

Jako spravovaná služba Postgres je nastaveno mnoho parametrů databáze na základě velikosti výpočetních prostředků. Podívejte se na všechna nastavení parametrů databáze pomocí:

SHOW ALL;

Můžete nakonfigurovat parametry, které mají user kontext na úrovni relace, databáze nebo role. Na úrovni instance nelze konfigurovat parametry.

  • Umožňuje zobrazit parametry, které lze nastavit na úrovni relace, databáze nebo role.

    SELECT name
    FROM pg_settings
    WHERE context = 'user';
    
  • Nastavte parametr relace.

    SET maintenance_work_mem='1 GB';
    
  • Nastavte parametr pro všechny relace připojené k databázi.

    ALTER DATABASE lakebase SET maintenance_work_mem='1 GB';
    
  • Nastavte parametr pro všechny relace od daného uživatele.

    ALTER USER "john@company.com" SET maintenance_work_mem='1 GB';
    

Kódování a kolace databáze

Kódování databáze

Ve výchozím nastavení se používá kolace C.UTF-8. C.UTF-8 podporuje úplný rozsah znaků kódování UTF-8.

Podporuje se také kódování UTF8 (kódování Unicode, 8bitové kódování s proměnlivou šířkou).

Pokud chcete zobrazit kódování a kolaci databáze, spusťte následující dotaz:

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';

Poznámka:

V Postgresu nemůžete po vytvoření změnit kódování ani kolaci databáze.

Řazení

Kódování je objekt schématu SQL, který mapuje názvy SQL na národní prostředí poskytovaná knihovnami instalovanými v operačním systému.

Ve výchozím nastavení používá Lakebase C.UTF-8 srovnání. Dalším poskytovatelem podporovaným službou Lakebase je icu, který používá externí knihovnu ICU .

Lakebase poskytuje celou řadu předdefinovaných národních prostředí icu pro případ, že potřebujete řazení nebo převody velkých a malých písmen specifické pro národní prostředí.

  • Zobrazit všechna předdefinovaná lokalizace:
SELECT * FROM pg_collation;
  • Vytvořte databázi s předdefinovaným icu národním prostředím:
CREATE DATABASE my_arabic_db
LOCALE_PROVIDER icu
icu_locale 'ar-x-icu'
template template0;
  • Zadejte místní nastavení pro jednotlivé sloupce:
CREATE TABLE my_ru_table (
    id serial PRIMARY KEY,
    russian_text_column text COLLATE "ru-x-icu",
    description text
);

Omezení funkcí

Role a oprávnění

  • Nemůžete získat přístup k hostitelskému operačnímu systému.
  • Nemůžete se připojit pomocí Postgres superuser.
    • Všechny funkce, které vyžadují superuser oprávnění nebo přímý přístup k místnímu systému souborů, nejsou povoleny.
    • databricks_superuser nahrazuje roli Postgres superuser. Informace o oprávněních přidružených k této roli najdete v tématu Správa rolí.

Replikace

Replikace dat do nebo z databáze Lakebase pomocí nativní logické replikace Postgres ještě není k dispozici.

Tabulkový prostor

Lakebase nepodporuje tabulární prostory Postgres. Při pokusu o vytvoření prostoru tabulky s příkazem CREATE TABLESPACE dojde k chybě. Důvodem je architektura spravovaného cloudu Lakebase, která neumožňuje přímý přístup k systému souborů pro vlastní umístění úložiště.

Pokud máte existující aplikace nebo skripty, které používají tabulkové prostory pro uspořádání databázových objektů mezi různými úložnými zařízeními, musíte tyto odkazy odebrat nebo upravit při migraci na Lakebase.