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 in einer Instanz verwenden möchten, setzen Sie das
google_columnar_engine.enabled
Flag der Instanz auf on.
Die Schritte zum Festlegen dieses Flags für eine Instanz 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
ALTER SYSTEMPostgreSQL-Befehl aus: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. Andernfalls führen Sie den folgenden Schritt aus, um den Datenbankserver jetzt neu zu starten.
Damit die Änderungen an den Konfigurationsparametern wirksam werden, starten Sie den Container mit AlloyDB Omni neu.
Docker
sudo docker restart CONTAINER_NAMEPodman
sudo podman restart CONTAINER_NAME
Kubernetes
Wenn Sie das Flag google_columnar_engine.enabled auf on setzen möchten, ändern Sie das Manifest des Datenbankclusters so, dass dem Abschnitt primarySpec das Attribut parameters hinzugefügt wird:
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 in einer Instanz aktiviert ist, weist AlloyDB Omni einen Teil des Arbeitsspeichers der Instanz zu, um die spaltenbasierten Daten zu speichern. Wenn Sie dem Spaltenspeicher schnellen RAM zuweisen, wird sichergestellt, dass AlloyDB Omni so schnell wie möglich auf die spaltenbasierten Daten zugreifen kann.
Arbeitsspeicher und Speicher-Cache stellen zusammen die Gesamtkapazität der spaltenbasierten Engine dar.
Arbeitsspeicher konfigurieren
Sie können die Zuweisung mit dem
google_columnar_engine.memory_size_in_mb Flag auf eine feste Größe festlegen.
Die Schritte zum Konfigurieren des Arbeitsspeichers des Spaltenspeichers für AlloyDB Omni 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
ALTER SYSTEMPostgreSQL-Befehl ausfü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 Container mit AlloyDB Omni neu.
Docker
sudo docker restart CONTAINER_NAMEPodman
sudo podman restart CONTAINER_NAME
Kubernetes
Wenn Sie das Flag google_columnar_engine.memory_size_in_mb festlegen möchten, ändern Sie das Manifest des Datenbankclusters so, dass dem Abschnitt primarySpec das Attribut parameters hinzugefügt wird:
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.
Speicher-Cache konfigurieren
Bevor Sie den Speicher-Cache konfigurieren, müssen Sie den Datenträger-Cache von AlloyDB Omni aktivieren.
Die Schritte zum Aktivieren des Speicher-Caches für AlloyDB Omni hängen davon ab, ob Sie AlloyDB Omni in einem Container oder in einem Kubernetes-Cluster ausführen.
Einzelserver
Konfigurieren Sie den Speicher-Cache so:
ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;Ersetzen Sie
STORAGE_CACHE_SIZEdurch die gewünschte Größe des Speicher-Caches in Megabyte. Standardmäßig werden 5% des Datenträger-Caches der spaltenbasierten Engine zugewiesen. Der maximal zulässige Wert für dieses Flag beträgt 50% des gesamten Datenträger-Caches oder 1000 * google_columnar_engine.memory_size_in_mb, je nachdem, welcher Wert niedriger ist.Damit die Änderungen an den Konfigurationsparametern wirksam werden, starten Sie den Container mit AlloyDB Omni neu.
Docker
sudo docker restart CONTAINER_NAMEPodman
sudo podman restart CONTAINER_NAME
Kubernetes
Wenn Sie den Speicher-Cache für Ihre Datenbank aktivieren möchten, ändern Sie das Manifest des Datenbankclusters so, dass dem Abschnitt features des Abschnitts primarySpec das Attribut columnarSpillToDisk hinzugefügt wird:
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 spaltenbasierten Speicher-Caches, z. B.5Gi. Wenn Sie für dieses Feld keinen Wert angeben, werden standardmäßig 5% des Datenträger-Caches der spaltenbasierten Engine zugewiesen.ULTRAFAST_CACHE_SIZE: die Größe des Caches, z. B.100Gi. Er muss größer alsshared_bufferssein. Dieses Feld ist optional. Wenn Sie den Wert dieses Felds nicht angeben, verwendet AlloyDB Omni den gesamten verbleibenden Speicherplatz auf dem Laufwerk. 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.
Vektorisierte Verknüpfung aktivieren
Die spaltenbasierte Engine hat eine Funktion für vektorisierte Verknüpfungen, mit der die Leistung von Verknüpfungen verbessert werden kann, indem die vektorisierte Verarbeitung auf geeignete Abfragen angewendet wird.
Nachdem Sie die vektorisierte Verknüpfung aktiviert haben, kann der AlloyDB-Abfrageplaner anstelle des standardmäßigen PostgreSQL-Hash-Verknüpfungsoperators den vektorisierten Verknüpfungsoperator anwenden. Der Planer trifft diese Entscheidung, indem er die Kosten für die Ausführung der Abfrage mit jeder Methode vergleicht.
Wenn Sie die vektorisierte Verknüpfung in einer Instanz aktivieren möchten, setzen Sie das Flag
google_columnar_engine.enable_vectorized_join
der Instanz auf on.
Führen Sie den ALTER SYSTEM PostgreSQL-Befehl aus, um dieses Flag für eine Instanz festzulegen:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
Standardmäßig weist AlloyDB Omni der Funktion für vektorisierte Verknüpfungen einen Thread zu. Sie können die Anzahl der für
diese Funktion verfügbaren Threads erhöhen, indem Sie das
google_columnar_engine.vectorized_join_threads
Flag 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 spaltenbasierte Engine manuell zu aktualisieren:
SELECT google_columnar_engine_refresh(relation =>'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 spaltenbasierte Engine in einer Instanz deaktivieren möchten, setzen Sie das Flag google_columnar_engine.enabled auf off.
Die Schritte zum Festlegen dieses Flags für eine Instanz 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
ALTER SYSTEMPostgreSQL-Befehl aus:
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
- Damit die Änderungen an den Konfigurationsparametern wirksam werden, starten Sie den Container mit AlloyDB Omni neu.
Docker
Führen Sie den docker container restart Befehl aus, um einen AlloyDB Omni-Container neu zu starten:
sudo docker restart CONTAINER_NAMEErsetzen Sie CONTAINER_NAME durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben.
Podman
Führen Sie den podman container start Befehl aus, um einen AlloyDB Omni-Container neu zu starten:
sudo podman restart CONTAINER_NAMEErsetzen 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 des Datenbankclusters so, dass dem Abschnitt primarySpec das Attribut parameters hinzugefügt wird:
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 spaltenbasierte Engine ansehen
Google CodeLab-Tutorial Analytische Abfragen mit der spaltenbasierten Engine in AlloyDB Omni beschleunigen durcharbeiten