Eine konzeptionelle Übersicht über die spaltenbasierte Engine von AlloyDB finden Sie unter Übersicht über die spaltenbasierte Engine von AlloyDB Omni.
Spaltenbasierte Engine aktivieren
Wenn Sie die spaltenbasierte Engine für eine Instanz verwenden möchten, setzen Sie das Flag google_columnar_engine.enabled der Instanz auf on.
Einzelserver
So setzen Sie google_columnar_engine.enabled auf on:
Führen Sie den PostgreSQL-Befehl
ALTER SYSTEMaus:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'Wenn Sie die Konfiguration der spaltenbasierten Engine anpassen möchten, folgen Sie der Anleitung im nächsten Abschnitt, bevor Sie den Datenbankserver neu starten. Führen Sie andernfalls den folgenden Schritt aus, um den Datenbankserver jetzt neu zu starten.
Damit die Änderungen an den Konfigurationsparametern wirksam werden, starten Sie den Datenbankserver neu:
sudo systemctl restart alloydbomni18
Größe des Spaltenspeichers konfigurieren
Wenn die spaltenbasierte Engine für eine Instanz aktiviert ist, weist AlloyDB Omni einen Teil des Arbeitsspeichers der Instanz zum Speichern der spaltenbasierten Daten zu. Wenn Sie Ihrem Spaltenspeicher schnellen RAM zuweisen, kann AlloyDB Omni so schnell wie möglich auf die spaltenorientierten Daten zugreifen.
Arbeitsspeicher und Speichercache bilden zusammen die Gesamtkapazität der spaltenbasierten Engine.
Arbeitsspeicher konfigurieren
Sie können die Zuweisung mit dem Flag google_columnar_engine.memory_size_in_mb auf eine feste Größe festlegen.
Einzelserver
So legen Sie das Flag google_columnar_engine.memory_size_in_mb für eine Instanz fest:
Konfigurieren Sie den Arbeitsspeicher, indem Sie den PostgreSQL-Befehl
ALTER SYSTEMausführen:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;Ersetzen Sie
COLUMN_MEMORY_SIZEdurch die neue Größe des Spaltenspeichers in Megabyte, z. B.256.Damit die Änderungen an den Konfigurationsparametern wirksam werden, starten Sie den Datenbankserver neu:
sudo systemctl restart alloydbomni18
Speichercache konfigurieren
Einzelserver
Gemeinsam genutzte oder dedizierte Geräte
Sie können den Speichercache der spaltenbasierten Engine auf dedizierten oder freigegebenen Geräten konfigurieren.
Cache-Verzeichnis bereitstellen und einbinden
Auf dedizierten Geräten müssen Sie Laufwerke bereitstellen, ein Dateisystem erstellen, das Cacheverzeichnis in einem Hostpfad (z. B. /var/lib/postgresql/18/data/columnar_cache) bereitstellen und dafür sorgen, dass der Nutzer postgres Schreibberechtigungen hat.
Spaltenspeicher-Cache aktivieren
Führen Sie
ALTER SYSTEMaus, um den Pfad und die Größe des Cache-Verzeichnisses zu konfigurieren:ALTER SYSTEM SET google_columnar_engine.omni_storage_cache_directory = 'CACHE_DIR_PATH'; ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;Ersetzen Sie Folgendes:
CACHE_DIR_PATH: Der Pfad zum Cache-Verzeichnis (z. B./var/lib/postgresql/18/data/columnar_cache).STORAGE_CACHE_SIZE: Die Größe des Speichercaches der spaltenbasierten Engine in Megabyte.
Starten Sie den Datenbankserver neu:
sudo systemctl restart alloydbomni18
Vektorbereinigten Join 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 jeder Methode 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.
Führen Sie den PostgreSQL-Befehl ALTER SYSTEM aus, um dieses Flag für eine Instanz festzulegen:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
In AlloyDB Omni wird standardmäßig ein Thread für die Funktion „Vektorisierter Join“ zugewiesen. 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. Der Höchstwert ist cpu_count * 2.
Spaltenbasierte Engine manuell aktualisieren
Wenn die spaltenbasierte Engine aktiviert ist, wird der Spaltenspeicher standardmäßig im Hintergrund aktualisiert.
Führen Sie die folgende SQL-Abfrage aus, um die Spalten-Engine manuell zu aktualisieren:
SELECT google_columnar_engine_refresh(relation =>'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.
Einzelserver
So setzen Sie google_columnar_engine.enabled auf off:
- Führen Sie den PostgreSQL-Befehl
ALTER SYSTEMaus:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
Damit die Änderungen an den Konfigurationsparametern wirksam werden, starten Sie den Datenbankserver neu:
sudo systemctl restart alloydbomni18
Nächste Schritte
Vollständige Liste der Datenbank-Flags für die spaltenbasierte Engine
Codelab „Analytische Abfragen mit der spaltenbasierten Engine in AlloyDB Omni beschleunigen“