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 spaltenorientierte Engine für eine Instanz verwenden möchten, setzen Sie das Flag google_columnar_engine.enabled
der Instanz auf on
.
Die Schritte, die Sie zum Festlegen dieses Flags für eine Instanz ausführen, hängen davon ab, ob Sie AlloyDB Omni in einem Container oder in einem Kubernetes-Cluster ausführen.
Einzelserver
So setzen Sie google_columnar_engine.enabled
auf on
:
Führen Sie den PostgreSQL-Befehl
ALTER SYSTEM
aus:ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
Wenn Sie die Konfiguration der spaltenorientierten 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 Konfigurationsparameteränderung wirksam wird, starten Sie den laufenden Container mit AlloyDB Omni neu.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Wenn Sie das Flag google_columnar_engine.enabled
auf on
setzen möchten, ändern Sie das Manifest Ihres Datenbankclusters, um dem Abschnitt primarySpec
das Attribut parameters
hinzuzufügen:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
Ersetzen Sie CLUSTER_NAME
durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.
Größe des Spaltenspeichers konfigurieren
Wenn die spaltenbasierte Engine für eine Instanz aktiviert ist, weist AlloyDB Omni einen Teil des Instanzarbeitsspeichers zum Speichern der spaltenbasierten Daten zu. Wenn Sie Hochgeschwindigkeits-RAM für Ihren Spaltenspeicher reservieren, kann AlloyDB Omni so schnell wie möglich auf die spaltenbasierten 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.
Die Schritte, die Sie zum Konfigurieren des Arbeitsspeichers des Spaltenspeichers für AlloyDB Omni ausführen, hängen davon ab, ob Sie AlloyDB Omni in einem Container oder in einem Kubernetes-Cluster ausführen.
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 SYSTEM
ausführen:ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;
Ersetzen Sie
COLUMN_MEMORY_SIZE
durch die neue Größe des Spaltenspeichers in Megabyte, z. B.256
.Damit die Konfigurationsparameteränderung wirksam wird, starten Sie den laufenden Container mit AlloyDB Omni neu.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Wenn Sie das Flag google_columnar_engine.memory_size_in_mb
festlegen möchten, ändern Sie das Manifest Ihres Datenbankclusters, um dem Abschnitt primarySpec
das Attribut parameters
hinzuzufügen:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
Ersetzen Sie Folgendes:
CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.COLUMN_MEMORY_SIZE
: Die neue Größe des Spaltenspeichers in Megabyte, z. B.256
.
Speichercache konfigurieren
Bevor Sie den Speichercache konfigurieren können, müssen Sie den AlloyDB Omni-Festplattencache aktivieren.
Die Schritte, die Sie zum Aktivieren des Speichercaches für AlloyDB Omni ausführen müssen, hängen davon ab, ob Sie AlloyDB Omni in einem Container oder in einem Kubernetes-Cluster ausführen.
Einzelserver
Konfigurieren Sie den Speichercache so:
ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
Ersetzen Sie
STORAGE_CACHE_SIZE
durch die gewünschte Größe des Speichercaches in Megabyte. Standardmäßig werden 5% des Festplatten-Cache der spaltenorientierten Engine zugewiesen. Der maximal zulässige Wert für dieses Flag beträgt 50% des gesamten Festplatten-Cache oder 1.000 * google_columnar_engine.memory_size_in_mb, je nachdem, welcher Wert kleiner ist.Damit die Konfigurationsparameteränderung wirksam wird, starten Sie den laufenden Container mit AlloyDB Omni neu.
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Kubernetes
Wenn Sie den Speichercache für Ihre Datenbank aktivieren möchten, ändern Sie das Manifest Ihres Datenbankclusters, um das Attribut columnarSpillToDisk
dem Abschnitt features
des Abschnitts primarySpec
hinzuzufügen:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: STORAGE_CACHE_SIZE
ultraFastCache:
cacheSize: ULTRAFAST_CACHE_SIZE
genericVolume:
storageClass: "STORAGE_CLASS_NAME"
...
Ersetzen Sie Folgendes:
CLUSTER_NAME
: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.STORAGE_CACHE_SIZE
: die Größe des Spaltenspeichercaches, z. B.5Gi
. Wenn Sie keinen Wert für dieses Feld angeben, werden standardmäßig 5% des Festplatten-Cache der Spalten-Engine zugewiesen.ULTRAFAST_CACHE_SIZE
: Die Größe des Cache, z. B.100Gi
. Es muss größer alsshared_buffers
sein. Dieses Feld ist optional. Wenn Sie den Wert dieses Felds nicht angeben, verwendet AlloyDB Omni den gesamten verbleibenden Speicherplatz auf der Festplatte. Dies gilt sowohl für AlloyDB Omni in einem Container als auch in einem Kubernetes-Cluster. Weitere Informationen zu Maßeinheiten finden Sie unter Arbeitsspeicherressourceneinheiten.STORAGE_CLASS_NAME
: Der Name der Speicherklasse des ultraschnellen Cache-Volumes, z. B.local-storage
.
Vektorbasierten 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 für vektorisierte Joins 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
.
Die Schritte, die Sie zum Festlegen dieses Flags für eine Instanz ausführen, hängen davon ab, ob Sie AlloyDB Omni in einem Container auf einem einzelnen Server oder in einem Kubernetes-Cluster ausführen.
Einzelserver
So setzen Sie google_columnar_engine.enabled
auf off
:
- Führen Sie den PostgreSQL-Befehl
ALTER SYSTEM
aus:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
- Damit die Konfigurationsparameteränderung wirksam wird, starten Sie den laufenden Container mit AlloyDB Omni neu.
Docker
Führen Sie den Befehl docker container restart
aus, um einen AlloyDB Omni-Container neu zu starten:
sudo docker restart CONTAINER_NAME
Ersetzen Sie CONTAINER_NAME
durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben.
Podman
Führen Sie den Befehl podman container start
aus, um einen AlloyDB Omni-Container neu zu starten:
sudo podman restart CONTAINER_NAME
Ersetzen Sie CONTAINER_NAME
durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben.
Kubernetes
Wenn Sie das Flag google_columnar_engine.enabled
auf off
setzen möchten, ändern Sie das Manifest Ihres Datenbankclusters, um dem Abschnitt primarySpec
das Attribut parameters
hinzuzufügen:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.3.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
Ersetzen Sie CLUSTER_NAME
durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.
Nächste Schritte
Vollständige Liste der Datenbank-Flags für die spaltenorientierte Engine
Arbeiten Sie die Google CodeLab-Anleitung zum Beschleunigen von analytischen Abfragen mit der spaltenbasierten Engine in AlloyDB Omni durch.