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 auf einer Instanz verwenden möchten, setzen Sie das
google_columnar_engine.enabled
Flag der Instanz auf on.
Führen Sie die folgenden Schritte aus, um den Parameter google_columnar_engine.enabled auf on zu setzen:
Öffnen Sie das
DBCluster-Manifest Ihres Datenbankclusters.Fügen Sie im Abschnitt
primarySpecden Parametergoogle_columnar_engine.enableddem Blockparametershinzu:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on"Ersetzen Sie
DB_CLUSTER_NAMEdurch den Namen des Datenbankclusters.Der RPM-Orchestrator startet die Datenbank automatisch neu, um die Parameteränderungen anzuwenden. Wenden Sie das aktualisierte
DBCluster-Manifest mit einer der folgenden Methoden an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Ansible
Erstellen Sie eine
update.yml-Playbook-Datei:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateErsetzen Sie Folgendes:
SSH_USER: der Nutzername, mit dem Sie sich über SSH mit den Knoten in Ihrem Cluster verbinden.SSH_KEY_PATH: der lokale Pfad zur privaten SSH-Schlüsseldatei, die zum Herstellen einer Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook von Ihrem Steuerknoten aus aus und übergeben Sie die Ressourcenspezifikation als zusätzliche Variable:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Größe des Spaltenspeichers konfigurieren
Wenn die spaltenbasierte Engine auf 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, kann AlloyDB Omni so schnell wie möglich auf die spaltenbasierten Daten zugreifen.
Arbeitsspeicher und Speichercache 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.
Führen Sie die folgenden Schritte aus, um den Parameter google_columnar_engine.memory_size_in_mb festzulegen:
Öffnen Sie das
DBCluster-Manifest Ihres Datenbankclusters.Fügen Sie im Abschnitt
primarySpecdie Konfiguration der spaltenbasierten Engine dem Blockparametershinzu:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on" google_columnar_engine.memory_size_in_mb: "MEMORY_SIZE_MB"Ersetzen Sie Folgendes:
DB_CLUSTER_NAME: der Name des Datenbankclusters.MEMORY_SIZE_MB: die Menge des Arbeitsspeichers in Megabyte, die der spaltenbasierten Engine zugewiesen werden soll.
Der RPM-Orchestrator startet die Datenbank automatisch neu, um die Parameteränderungen anzuwenden. Wenden Sie das aktualisierte
DBCluster-Manifest mit einer der folgenden Methoden an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Ansible
Erstellen Sie eine
update.yml-Playbook-Datei:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateErsetzen Sie Folgendes:
SSH_USER: der Nutzername, mit dem Sie sich über SSH mit den Knoten in Ihrem Cluster verbinden.SSH_KEY_PATH: der lokale Pfad zur privaten SSH-Schlüsseldatei, die zum Herstellen einer Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook von Ihrem Steuerknoten aus aus und übergeben Sie die Ressourcenspezifikation als zusätzliche Variable:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Speichercache konfigurieren
Sie können den Speichercache der spaltenbasierten Engine auf dedizierten oder gemeinsam verwendeten Geräten konfigurieren.
Zweckbestimmte Geräte
Führen Sie die folgenden Schritte aus, um ein zweckbestimmtes Gerät für den Speichercache der spaltenbasierten Engine zu konfigurieren:
Öffnen Sie das
DBCluster-Manifest Ihres Datenbankclusters.Fügen Sie im Abschnitt
primarySpecdem Blockfeaturesdas AttributcolumnarSpillToDiskmitcacheSizeundlocalVolume.pathhinzu:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE localVolume: path: COLUMNAR_CACHE_DIR_PATHErsetzen Sie Folgendes:
DB_CLUSTER_NAME: der Name des Datenbankclusters.STORAGE_CACHE_SIZE: die Größenbeschränkung für den Speichercache der spaltenbasierten Engine, z. B.50Gi.COLUMNAR_CACHE_DIR_PATH: der Dateisystempfad des dedizierten Verzeichnisses für den Speichercache der spaltenbasierten Engine, z. B./mnt/disks/columnarcache.
Wenden Sie das aktualisierte
DBCluster-Manifest mitalloydbctloder Ansible an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Ansible
Erstellen Sie eine
update.yml-Playbook-Datei:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateErsetzen Sie Folgendes:
SSH_USER: der Nutzername, mit dem Sie sich über SSH mit den Knoten in Ihrem Cluster verbinden.SSH_KEY_PATH: der lokale Pfad zur privaten SSH-Schlüsseldatei, die zum Herstellen einer Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook von Ihrem Steuerknoten aus aus und übergeben Sie die Ressourcenspezifikation als zusätzliche Variable:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Gemeinsam verwendete Geräte
Wenn Sie unter columnarSpillToDisk keinen Wert für localVolume.path angeben, verwendet der Speichercache der spaltenbasierten Engine den Datenträger-Cache, der unter ultraFastCache konfiguriert ist.
Führen Sie die folgenden Schritte aus, um den Speichercache der spaltenbasierten Engine auf gemeinsam verwendeten Geräten zu konfigurieren:
Öffnen Sie das
DBCluster-Manifest Ihres Datenbankclusters.Fügen Sie im Abschnitt
primarySpecdem Blockfeaturesdie AttributecolumnarSpillToDiskundultraFastCachehinzu:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE ultraFastCache: cacheSize: ULTRAFAST_CACHE_SIZE localVolume: path: DISK_CACHE_DIR_PATHErsetzen Sie Folgendes:
DB_CLUSTER_NAME: der Name des Datenbankclusters.STORAGE_CACHE_SIZE: die Größe des spaltenbasierten Speichercaches, z. B.50Gi. 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 maximale Größe des ultraschnellen Cachepuffers, der von AlloyDB Omni reserviert wird, z. B.100Gi. Wenn nicht festgelegt, wird der gesamte verbleibende Speicherplatz unterlocalVolume.pathverwendet.DISK_CACHE_DIR_PATH: der Ordnerpfad für die ultraschnellen Cachedateien, z. B./mnt/disks/chillcache.
Wenden Sie das aktualisierte
DBCluster-Manifest mitalloydbctloder Ansible an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Ansible
Erstellen Sie eine
update.yml-Playbook-Datei:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateErsetzen Sie Folgendes:
SSH_USER: der Nutzername, mit dem Sie sich über SSH mit den Knoten in Ihrem Cluster verbinden.SSH_KEY_PATH: der lokale Pfad zur privaten SSH-Schlüsseldatei, die zum Herstellen einer Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook von Ihrem Steuerknoten aus aus und übergeben Sie die Ressourcenspezifikation als zusätzliche Variable:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Vektorisierte Verknüpfung aktivieren
Die spaltenbasierte Engine verfügt über eine Funktion für vektorisierte Verknüpfungen, mit der die Leistung von Verknüpfungen verbessert werden kann, indem die vektorisierte Verarbeitung auf entsprechende Abfragen angewendet wird.
Nachdem Sie die vektorisierte Verknüpfung aktiviert haben, kann der AlloyDB-Abfrageplaner den Operator für vektorisierte Verknüpfungen anstelle des Standard-PostgreSQL-Hash-Verknüpfungsoperators 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 auf einer Instanz aktivieren möchten, setzen Sie das
google_columnar_engine.enable_vectorized_join
Flag 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 auf einer Instanz deaktivieren möchten, setzen Sie das Flag google_columnar_engine.enabled auf off.
Führen Sie die folgenden Schritte aus, um den Parameter google_columnar_engine.enabled auf off zu setzen:
Öffnen Sie das
DBCluster-Manifest Ihres Datenbankclusters.Setzen Sie im Abschnitt
primarySpecden Parametergoogle_columnar_engine.enabledim Blockparametersaufoff:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "off"Ersetzen Sie
DB_CLUSTER_NAMEdurch den Namen des Datenbankclusters.Der RPM-Orchestrator startet die Datenbank automatisch neu, um die Parameteränderungen anzuwenden. Wenden Sie das aktualisierte
DBCluster-Manifest mit einer der folgenden Methoden an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Ansible
Erstellen Sie eine
update.yml-Playbook-Datei:--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.updateErsetzen Sie Folgendes:
SSH_USER: der Nutzername, mit dem Sie sich über SSH mit den Knoten in Ihrem Cluster verbinden.SSH_KEY_PATH: der lokale Pfad zur privaten SSH-Schlüsseldatei, die zum Herstellen einer Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook von Ihrem Steuerknoten aus aus und übergeben Sie die Ressourcenspezifikation als zusätzliche Variable:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Verzeichnis mit den Bereitstellungsspezifikationen.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Nächste Schritte
Vollständige Liste der Datenbank-Flags für die spaltenbasierte Engine ansehen
Codelab Analytische Abfragen mit der spaltenbasierten Engine in AlloyDB Omni beschleunigen ausprobieren