Auf dieser Seite wird beschrieben, wie Sie das spaltenorientierte Modul für eine AlloyDB for PostgreSQL-Instanz aktivieren oder deaktivieren. Außerdem wird beschrieben, wie Sie eine geeignete Anfangsgröße für den Spaltenspeicher sowie Einstellungen für den Arbeitsspeicher- und Speichercache für eine optimale Leistung konfigurieren.
Informationen zur Verwendung der spaltenbasierten Engine in AlloyDB Omni finden Sie unter Spaltenbasierte Engine in AlloyDB Omni aktivieren.
Bei jeder dieser Aktionen wird der Wert eines Datenbankflags für eine Ihrer AlloyDB-Instanzen geändert. Weitere Informationen zum Festlegen von Datenbank-Flags finden Sie unter Datenbank-Flags einer Instanz konfigurieren.
Eine konzeptionelle Übersicht über die spaltenbasierte Engine von AlloyDB finden Sie unter Spaltenbasierte Engine von AlloyDB.
Spaltenbasierte Engine aktivieren
Wenn Sie die spaltenorientierte Engine für eine Instanz verwenden möchten, setzen Sie das Flag google_columnar_engine.enabled
der Instanz auf on
.
Weitere Informationen zum Festlegen von Datenbank-Flags in AlloyDB finden Sie unter Datenbank-Flags einer Instanz konfigurieren.
Größe des Spaltenspeichers konfigurieren
Wenn die Spalten-Engine für eine Instanz aktiviert ist, weist AlloyDB einen Teil des Instanzarbeitsspeichers zum Speichern der Spaltendaten zu. Wenn Sie Hochgeschwindigkeits-RAM für Ihren Spaltenspeicher reservieren, kann AlloyDB so schnell wie möglich auf die spaltenbasierten Daten zugreifen.
Arbeitsspeicher und Speichercache bilden zusammen die Gesamtkapazität der spaltenbasierten Engine.
Arbeitsspeicher für die spaltenbasierte Engine konfigurieren
Wenn der Spaltenspeicher größer wird als der zugewiesene Teil des Arbeitsspeichers Ihrer Instanz, verwendet AlloyDB automatisch die zugrunde liegende Cache-Ebene der Instanz, um die zusätzlichen Spaltendaten zu speichern.In AlloyDB können Sie sowohl Relationen als auch materialisierte Ansichten und ScaNN-Indizes in die spaltenbasierte Engine laden, um die Abfrageleistung zu beschleunigen.
Standardmäßig weist AlloyDB dem Spaltenspeicher 30% des Instanzspeichers zu und passt die Gesamtzuweisung automatisch an, wenn Sie die Größe der Instanz ändern. Sie können den Arbeitsspeicher der Instanz auf maximal 50 % ändern. Die empfohlene Arbeitsspeichergröße für die spaltenbasierte Engine für Ihre Instanz finden Sie unter Empfohlene Arbeitsspeichergröße für den Spaltenspeicher.
Mit dem Flag google_columnar_engine.memory_size_in_mb
können Sie die Zuweisung auch auf eine feste und bestimmte Größe festlegen.
Wenn Sie möchten, dass AlloyDB zur Standardzuweisung zurückkehrt, entfernen Sie das Flag aus der Instanz.
Weitere Informationen zum Festlegen oder Löschen von Flags finden Sie unter Datenbank-Flags einer Instanz konfigurieren.
Laden von ScaNN-Indizes in die spaltenbasierte Engine konfigurieren
Die spaltenorientierte Engine beschleunigt die Vektorsuche, wenn ScaNN-Indizes in sie eingefügt werden.
Um den Spaltenindex-Cache zu aktivieren, setzen Sie das Flag google_columnar_engine.enable_index_caching
auf on
.
Wenn Sie diese Funktion deaktivieren möchten, legen Sie das Flag auf off
fest.
Speichercache für die spaltenbasierte Engine konfigurieren
Der Speichercache der spaltenbasierten Engine wird entsprechend der Instanzstufe bereitgestellt.
Instanzstufe | Standardgröße des Caches der spaltenbasierten Engine | ||
---|---|---|---|
N2 | C4A | ||
Primär | Replikatpool | Primärer oder Replikatpool | |
1 vCPU | – | – | 0 |
2 vCPU | 18,75 GB | 37,5 GB | – |
4 vCPU | 18,75 GB | 37,5 GB | 18,75 GB |
8 vCPU | 18,75 GB | 37,5 GB | 37,75 GB |
16 vCPU | 37,5 GB | 37,5 GB | 75 GB |
32 vCPU | 75 GB | 75 GB | 112,5 GB |
48 vCPU | – | – | 187,5 GB |
64 vCPU | 150 GB | 150 GB | 262,5 GB |
72 vCPU | – | – | 300 GB |
96 vCPU | 300 GB | 300 GB | – |
128 vCPU | 450 GB | 450 GB | – |
Mit dem Flag google_columnar_engine.storage_cache_size
können Sie den Speichercache der Spalten-Engine anpassen. Dabei gelten die in der folgenden Tabelle aufgeführten Mindest- und Höchstwerte:
Instanzstufe | Mindestgröße des Caches der spaltenbasierten Engine | Maximale Cachegröße der spaltenbasierten Engine | ||
---|---|---|---|---|
N2 | C4A | |||
Primär | Replikatpool | Primärer oder Replikatpool | ||
1 vCPU | – | – | – | 0 |
2 vCPU | 0 | 187,5 GB | 375 GB | – |
4 vCPU | 0 | 187,5 GB | 375 GB | 187,5 GB |
8 vCPU | 0 | 187,5 GB | 375 GB | 375 GB |
16 vCPU | 0 | 375 GB | 375 GB | 750 GB |
32 vCPU | 0 | 750 GB | 750 GB | 1125 GB |
48 vCPU | – | – | – | 1125 GB |
64 vCPU | 0 | 1.500 GB | 1.500 GB | 2625 GB |
72 vCPU | – | – | – | 3000 GB |
96 vCPU | 0 | 3000 GB | 3000 GB | – |
128 vCPU | 0 | 4.500 GB | 4.500 GB | – |
Speicher-Cache-Daten für die spaltenbasierte Engine überwachen
Mit den folgenden Befehlen können Sie Daten zum Speichercache der spaltenorientierten Engine ansehen und überwachen:
Befehl | Beschreibung |
---|---|
SELECT google_columnar_engine_storage_cache_used(); |
Gibt die Größe des verwendeten Speichercaches der spaltenbasierten Engine zurück. |
SELECT google_columnar_engine_storage_cache_available(); |
Gibt die Größe des ungenutzten Speichercaches der spaltenbasierten Engine zurück. |
SHOW google_columnar_engine.storage_cache_size; |
Gibt die Gesamtmenge des konfigurierten Speicher-Cache für die spaltenbasierte Engine zurück. |
Vektorisierte Joins aktivieren
Die spaltenbasierte Engine verfügt über eine Funktion für vektorisierte Joins, mit der die Leistung von Joins verbessert werden kann, indem die vektorisierte Verarbeitung auf entsprechende Abfragen angewendet wird.
Nachdem Sie den vektorisierten Join aktiviert haben, kann der AlloyDB-Abfrageplaner den vektorisierten Join-Operator anstelle des Standard-PostgreSQL-Hash-Join-Operators anwenden. Der Planer trifft diese Entscheidung, indem er die Kosten für die Ausführung der Abfrage mit beiden Methoden vergleicht.
Wenn Sie den vektorisierten Join für eine Instanz aktivieren möchten, setzen Sie das Flag google_columnar_engine.enable_vectorized_join
der Instanz auf on
.
AlloyDB weist der Funktion für vektorisierte Joins standardmäßig einen Thread zu. Sie können die Anzahl der für diese Funktion verfügbaren Threads erhöhen, indem Sie das Flag google_columnar_engine.vectorized_join_threads
auf einen größeren Wert setzen.
Spaltenbasierte Engine manuell aktualisieren
Wenn Sie die spaltenorientierte Engine aktivieren, wird der Spaltenspeicher standardmäßig automatisch im Hintergrund aktualisiert.
Bei Arbeitslasten mit einer hohen Rate an Datenänderungen, z. B. häufigen INSERT
-, UPDATE
- oder DELETE
-Vorgängen, können Sie den spaltenorientierten Speicher nach diesen Änderungen manuell aktualisieren, um den Index auf dem neuesten Stand zu halten.
Führen Sie die folgende SQL-Abfrage aus, um die Spalten-Engine manuell zu aktualisieren:
SELECT google_columnar_engine_refresh('TABLE_NAME');
Ersetzen Sie TABLE_NAME
durch den Namen der Tabelle oder materialisierten Ansicht, die Sie manuell aktualisieren möchten.
Spaltenbasierte Engine deaktivieren
Wenn Sie die Columbar-Engine für eine Instanz deaktivieren möchten, setzen Sie das Flag google_columnar_engine.enabled
auf off
.
Nachdem Sie dieses Flag festgelegt haben, wird die Instanz automatisch neu gestartet.
Fehlerbehebung bei der spaltenbasierten Engine
Wenn Spalten in der spaltenorientierten Engine nicht gefüllt werden, kann eine der folgenden Situationen vorliegen:
Die Spalten, die Sie hinzufügen möchten, enthalten einen nicht unterstützten Datentyp.
Die Anforderungen der spaltenbasierten Engine werden nicht erfüllt.
So finden Sie die Ursache des Problems:
Audit-Logs Ihrer Instanz ansehen.
Prüfen Sie, ob sich die Tabellen oder materialisierten Ansichten in Ihrer Abfrage in der spaltenorientierten Engine befinden.
Prüfen Sie die Verwendung der spaltenorientierten Engine mit der Anweisung
EXPLAIN
.