Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Von Bedeutung
Lakebase Autoscaling ist in Beta in den folgenden Regionen: eastus2, westeurope, westus.
Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Einen Featurevergleich mit Lakebase Provisioned finden Sie unter Auswahl zwischen Versionen.
Auf dieser Seite wird beschrieben, wie Lakebase Postgres mit dem Standard-Postgres kompatibel ist. Als verwalteter Postgres-Dienst gibt es einige Unterschiede und Einschränkungen.
Unterstützung der Postgres-Version
Lakebase Autoscaling unterstützt Postgres 16 und Postgres 17.
Unterstützung der Postgres-Erweiterung
Lakebase unterstützt zahlreiche Postgres-Erweiterungen. Die vollständige Liste finden Sie unter Postgres-Erweiterungen.
Sitzung, Arbeitsspeicher und Speicher
Sitzungskontext
Die Lakebase-Skalieren-auf-Null-Funktion schließt automatisch Leerlaufverbindungen nach einer bestimmten Inaktivitätsdauer.
Wenn Verbindungen geschlossen werden, gehen alle Elemente im Sitzungskontext, z. B. temporäre Tabellen, vorbereitete Anweisungen, Empfehlungssperren und NOTIFY- und LISTEN-Befehle , verloren.
Um zu vermeiden, dass Kontexte auf Sitzungsebene verloren gehen, können Sie die Skalierung auf Null deaktivieren. Dies bedeutet jedoch, dass die Berechnung 24/7 ausgeführt wird.
Gedächtnis
SQL-Abfragen und Indexbuilds können große Datenmengen generieren, die möglicherweise nicht in den Arbeitsspeicher passen. Die Größe der Berechnung bestimmt die verfügbare Arbeitsspeichermenge.
Nicht protokollierte Tabellen
Nicht protokollierte Tabellen sind Tabellen, die nicht in das Write-Ahead-Protokoll (Write-Ahead Log, WAL) von Postgres geschrieben werden. Diese Tabellen werden im lokalem Speicher des Rechners gespeichert und bleiben weder über Neustarts des Rechners hinweg bestehen noch wenn die Rechenleistung auf null skaliert. Dies ist anders als bei dem Standard-Postgres, wo unprotokollierte Tabellen nur im Falle einer abnormalen Prozessbeendigung gelöscht werden. Darüber hinaus sind nicht protokollierte Tabellen durch den verfügbaren lokalen Festplattenspeicherplatz begrenzt. Lakebase berechnet 20 GiB des lokalen Speicherplatzes oder 15 GiB multipliziert mit der maximalen Rechengröße (je nachdem, welcher Wert höher ist) für temporäre Dateien, die von Postgres verwendet werden.
Temporäre Tabellen
Temporäre Tabellen sind nur für die Lebensdauer einer Sitzung (oder optional eine Transaktion) vorhanden. Wie nicht protokollierte Tabellen werden sie im Compute-Lokalspeicher gespeichert und sind durch den lokalen Speicherplatz begrenzt.
Postgres-Protokolle
Der Zugriff auf Postgres-Protokolle wird nicht unterstützt.
Statistikauflistung
Statistiken, die vom kumulativen Statistiksystem der Postgres gesammelt werden, werden nicht gespeichert, wenn eine Berechnung (wo Postgres ausgeführt wird) auf Null skaliert wird. Um zu vermeiden, dass Statistiken verloren gehen, können Sie das Feature "Scale-to-Zero" deaktivieren. Das Deaktivieren der Skalierung auf Null bedeutet jedoch auch, dass die Berechnung 24/7 ausgeführt wird.
Parametereinstellungen für Postgres
Als verwalteter Postgres-Dienst werden viele Datenbankparameter basierend auf der Berechnungsgröße festgelegt. Zeigen Sie alle Einstellungen für Datenbankparameter an, indem Sie Folgendes verwenden:
SHOW ALL;
Sie können Parameter konfigurieren, die über einen user Kontext auf Sitzungs-, Datenbank- oder Rollenebene verfügen. Parameter können nicht auf Instanzebene konfiguriert werden.
Zeigen Sie Parameter an, die auf Sitzungs-, Datenbank- oder Rollenebene festgelegt werden können.
SELECT name FROM pg_settings WHERE context = 'user';Legen Sie einen Parameter für die Sitzung fest.
SET maintenance_work_mem='1 GB';Legen Sie einen Parameter für alle Sitzungen fest, die mit einer Datenbank verbunden sind.
ALTER DATABASE lakebase SET maintenance_work_mem='1 GB';Legen Sie einen Parameter für alle Sitzungen eines bestimmten Benutzers fest.
ALTER USER "john@company.com" SET maintenance_work_mem='1 GB';
Datenbankcodierung und Sortierungen
Datenbankcodierung
Standardmäßig wird die Sortierung C.UTF-8 verwendet. C.UTF-8 unterstützt den vollständigen Bereich von UTF-8-codierten Zeichen.
Die UTF8-Codierung (Unicode- und 8-Bit-Codierung variabler Breite) wird ebenfalls unterstützt.
Führen Sie die folgende Abfrage aus, um die Codierung und Sortierung für Ihre Datenbank anzuzeigen:
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';
Hinweis
In Postgres können Sie die Codierung oder Sortierung einer Datenbank nicht ändern, nachdem sie erstellt wurde.
Sortierungen
Bei einer Sortierung handelt es sich um ein SQL-Schemaobjekt, das einem SQL-Namen Gebietsschemas zuordnet, die von Bibliotheken bereitgestellt werden, die im Betriebssystem installiert sind.
Standardmäßig verwendet Lakebase die C.UTF-8 Sortierung. Ein anderer von Lakebase unterstützter Anbieter ist icu, der die externe ICU-Bibliothek verwendet.
Lakebase bietet eine vollständige Reihe vordefinierter Icu-Gebietsschemas , falls Sie gebietsschemaspezifische Sortier- oder Fallkonvertierungen benötigen.
- Alle vordefinierten Gebietsschemas anzeigen:
SELECT * FROM pg_collation;
- Erstellen einer Datenbank mit einem vordefinierten
icuGebietsschema:
CREATE DATABASE my_arabic_db
LOCALE_PROVIDER icu
icu_locale 'ar-x-icu'
template template0;
- Geben Sie ein Gebietsschema für einzelne Spalten an:
CREATE TABLE my_ru_table (
id serial PRIMARY KEY,
russian_text_column text COLLATE "ru-x-icu",
description text
);
Funktionalitätseinschränkungen
Rollen und Berechtigungen
- Sie können nicht auf das Hostbetriebssystem zugreifen.
- Sie können keine Verbindung mit Postgres
superuserherstellen.- Alle Funktionen, die Berechtigungen oder direkten zugriff auf das lokale Dateisystem erfordern
superuser, sind nicht zulässig. - Der
databricks_superuserübernimmt die Rolle von Postgressuperuser. Informationen zu den Berechtigungen, die dieser Rolle zugeordnet sind, finden Sie unter Verwalten von Rollen.
- Alle Funktionen, die Berechtigungen oder direkten zugriff auf das lokale Dateisystem erfordern
Replikation
Das Replizieren von Daten in oder aus einer Lakebase-Datenbank mithilfe der nativen logischen Replikation von Postgres ist noch nicht verfügbar.
Tablespaces
Lakebase unterstützt keine Postgres-Tabellenräume. Beim Versuch, einen Tabellenbereich mit dem CREATE TABLESPACE Befehl zu erstellen, tritt ein Fehler auf. Dies liegt an der verwalteten Cloudarchitektur von Lakebase, die keinen direkten Dateisystemzugriff für benutzerdefinierte Speicherorte zulässt.
Wenn Sie über vorhandene Anwendungen oder Skripts verfügen, die Tabellenräume zum Organisieren von Datenbankobjekten auf verschiedenen Speichergeräten verwenden, müssen Sie diese Verweise entfernen oder ändern, wenn Sie zu Lakebase migrieren.