Spaltenbasierte Engine konfigurieren

Auf dieser Seite wird beschrieben, wie Sie die spaltenorientierte Engine in einer AlloyDB for PostgreSQL-Instanz aktivieren oder deaktivieren. Außerdem erfahren Sie, wie Sie eine geeignete Anfangsgröße für den Spaltenspeicher sowie Speicher- und Cache-Einstellungen 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 Datenbank-Flags in einer 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 AlloyDB-Spalten-Engine finden Sie unter Spalten-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.

Nachdem Sie dieses Flag festgelegt haben, wird die Instanz automatisch neu gestartet.

Weitere Informationen zum Festlegen von Datenbank-Flags in AlloyDB finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

Größe des Spaltenspeichers konfigurieren

Wenn die spaltenbasierte Engine auf einer Instanz aktiviert ist, weist AlloyDB einen Teil des Arbeitsspeichers der Instanz zu, um die spaltenbasierten Daten zu speichern. Wenn Sie Ihrem Spaltenspeicher speziellen Hochgeschwindigkeits-RAM zuweisen, kann AlloyDB so schnell wie möglich auf die spaltenbasierten Daten zugreifen.

Arbeitsspeicher und Speichercache zusammen bilden die Gesamtkapazität der spaltenbasierten Engine.

Arbeitsspeicher für die spaltenbasierte Engine konfigurieren

Wenn der Spaltenspeicher größer als der zugewiesene Teil des Arbeitsspeichers Ihrer Instanz ist, verwendet AlloyDB automatisch die zugrunde liegende Cacheebene der Instanz, um die zusätzlichen spaltenbasierten Daten zu speichern.

Standardmäßig weist AlloyDB dem Spaltenspeicher 30% des Arbeitsspeichers der Instanz zu und passt die Gesamtzuweisung automatisch an, wenn Sie die Größe der Instanz ändern. Sie können den Arbeitsspeicher der Instanz um maximal 50 % ändern. Informationen zur empfohlenen Arbeitsspeichergröße für die spaltenbasierte Engine Ihrer Instanz finden Sie unter Empfohlene Arbeitsspeichergröße für den Spaltenspeicher.

Mit dem Flag google_columnar_engine.memory_size_in_mb können Sie auch eine feste und bestimmte Größe für die Zuweisung festlegen. Wenn AlloyDB zur Standardzuweisung zurückkehren soll, entfernen Sie das Flag aus der Instanz.

Weitere Informationen zum Festlegen oder Löschen von Flags finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

Speichercache für die spaltenbasierte Engine konfigurieren

Der Speichercache der spaltenbasierten Engine wird entsprechend der Instanzebene bereitgestellt.

Instanzstufe Standardgröße des Caches der spaltenbasierten Engine
Primäre Instanz Lesereplikatinstanz
2 vCPU 18,75 GB 37,5 GB
4 vCPU 18,75 GB 37,5 GB
8 vCPU 18,75 GB 37,5 GB
16 vCPU 37,5 GB 37,5 GB
32 vCPU 75 GB 75 GB
64 vCPUs 150 GB 150 GB
96 vCPUs 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 spaltenorientierten Engine anpassen. Dabei gelten die in der folgenden Tabelle aufgeführten Einschränkungen für Mindest- und Höchstwerte:

Instanzstufe Mindestgröße des Caches der spaltenbasierten Engine Maximale Cachegröße der spaltenbasierten Engine
Primäre Instanz Lesereplikatinstanz
2 vCPU 0 187,5 GB 375 GB
4 vCPU 0 187,5 GB 375 GB
8 vCPU 0 187,5 GB 375 GB
16 vCPU 0 375 GB 375 GB
32 vCPU 0 750 GB 750 GB
64 vCPU 0 1.500 GB 1.500 GB
96 vCPUs 0 3000 GB 3000 GB
128 vCPU 0 4.500 GB 4.500 GB

Speichercache-Daten für die spaltenbasierte Engine überwachen

Wenn Sie Informationen zum Speichercache der spaltenorientierten Engine aufrufen möchten, können Sie eine der folgenden SQL-Abfragen ausführen.

SQL-Abfrage 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 nicht verwendeten Speichercaches der spaltenbasierten Engine zurück.
SELECT google_columnar_engine_storage_cache_total(); Gibt die Gesamtmenge der konfigurierten Größe des Speichercaches für die spaltenbasierte Engine zurück.

Vektorbasierten Join aktivieren

Die spaltenbasierte Engine bietet die Funktion Vektorisierter Join, mit der sich die Leistung von Joins verbessern lässt, indem die vektorisierte Verarbeitung auf geeignete Abfragen angewendet wird.

Nachdem Sie den vektorbasierten Join aktiviert haben, kann der AlloyDB-Abfrageplaner den vektorbasierten Join-Operator anstelle des standardmäßigen PostgreSQL-Hash-Join-Operators anwenden. Dazu vergleicht der Planer die Kosten für die Ausführung der Abfrage mit beiden Methoden.

Wenn Sie den vektorbasierten Join für eine Instanz aktivieren möchten, setzen Sie das Flag google_columnar_engine.enable_vectorized_join der Instanz auf on.

Weitere Informationen zum Festlegen von Datenbank-Flags finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

AlloyDB weist der vektorisierten Join-Funktion 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

Standardmäßig ist die spaltenorientierte Engine so eingestellt, dass der Spaltenspeicher automatisch im Hintergrund aktualisiert wird, wenn sie aktiviert ist. In bestimmten Situationen müssen Sie den spaltenbasierten Speicher möglicherweise manuell aktualisieren, z. B. wenn eine Beziehung mit einer großen Anzahl ungültiger Blöcke nicht durch die automatische Aktualisierung aktualisiert wird.

Wenn Sie die Spalten-Engine manuell aktualisieren möchten, führen Sie die folgende SQL-Abfrage aus:

SELECT google_columnar_engine_refresh('TABLE_NAME');

Ersetzen Sie TABLE_NAME durch den Namen der Tabelle oder der materialisierten Ansicht, die Sie manuell aktualisieren möchten.

Spaltenbasierte Engine deaktivieren

Wenn Sie die Columbarium-Engine für eine Instanz deaktivieren möchten, setzen Sie das Flag google_columnar_engine.enabled auf off.

Weitere Informationen zum Festlegen von Datenbank-Flags in AlloyDB finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

Nachdem Sie dieses Flag festgelegt haben, wird die Instanz automatisch neu gestartet.

Fehlerbehebung bei der spaltenbasierten Engine

Wenn Spalten in der spaltenorientierten Engine nicht ausgefüllt werden, trifft möglicherweise eine der folgenden Situationen zu:

  • 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 für dieses Problem:

  • Sehen Sie sich die Audit-Logs Ihrer Instanz an.

  • Prüfen Sie, ob sich die Tabellen oder materialisierten Ansichten in unserer Abfrage in der spaltenorientierten Engine befinden.

  • Prüfen Sie mit der Anweisung EXPLAIN, ob die spaltenorientierte Engine verwendet wird.

Nächste Schritte