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.
Führen Sie die folgenden Schritte aus, um den Parameter google_columnar_engine.enabled auf on festzulegen:
Öffnen Sie das Manifest Ihres Datenbankclusters
DBCluster.Fügen Sie im Abschnitt
primarySpecden Parametergoogle_columnar_engine.enabledzum 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 Bereitstellungsspezifikationsverzeichnis.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, den Sie verwenden, um über SSH eine Verbindung zu den Knoten in Ihrem Cluster herzustellen.SSH_KEY_PATH: Der lokale Pfad zur privaten SSH-Schlüsseldatei, die für die Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook auf Ihrem Steuerungsknoten 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 Bereitstellungsspezifikationsverzeichnis.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Größe des Spaltenspeichers konfigurieren
Wenn die spaltenbasierte Engine für eine Instanz aktiviert ist, weist AlloyDB Omni einen Teil des Arbeitsspeichers der Instanz zu, um die spaltenbasierten Daten zu speichern. Wenn Sie Ihrem Spaltenspeicher schnellen RAM zuweisen, kann AlloyDB Omni so schnell wie möglich auf die Spaltendaten zugreifen.
Arbeitsspeicher und Speichercache stellen zusammen die Gesamtkapazität der spaltenbasierten Engine dar.
Arbeitsspeicher konfigurieren
Mit dem Flag google_columnar_engine.memory_size_in_mb können Sie die Zuweisung 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 Manifest Ihres Datenbankclusters
DBCluster.Fügen Sie im Abschnitt
primarySpecdie Konfiguration der spaltenbasierten Engine zum 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 Größe des Arbeitsspeichers in Megabyte, der der spaltenorientierten 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 Bereitstellungsspezifikationsverzeichnis.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, den Sie verwenden, um über SSH eine Verbindung zu den Knoten in Ihrem Cluster herzustellen.SSH_KEY_PATH: Der lokale Pfad zur privaten SSH-Schlüsseldatei, die für die Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook auf Ihrem Steuerungsknoten 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 Bereitstellungsspezifikationsverzeichnis.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Speicher-Cache konfigurieren
Sie können den Speichercache der spaltenbasierten Engine entweder auf dedizierten oder freigegebenen Geräten konfigurieren.
Zweckbestimmte Geräte
So konfigurieren Sie ein zweckbestimmtes Gerät für den Speichercache der spaltenbasierten Engine:
Öffnen Sie das Manifest Ihres Datenbankclusters
DBCluster.Fügen Sie im Abschnitt
primarySpecdas AttributcolumnarSpillToDiskmitcacheSizeundlocalVolume.pathzum Blockfeatureshinzu: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 spaltenorientierten 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 entweder mitalloydbctloder Ansible an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Bereitstellungsspezifikationsverzeichnis.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, den Sie verwenden, um über SSH eine Verbindung zu den Knoten in Ihrem Cluster herzustellen.SSH_KEY_PATH: Der lokale Pfad zur privaten SSH-Schlüsseldatei, die für die Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook auf Ihrem Steuerungsknoten 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 Bereitstellungsspezifikationsverzeichnis.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Gemeinsam verwendete Geräte
Wenn Sie localVolume.path unter columnarSpillToDisk nicht angeben, wird der Speicherplatz des Datenträger-Caches, der unter ultraFastCache konfiguriert ist, vom Speicher-Cache der spaltenbasierten Engine mitgenutzt.
So konfigurieren Sie den Speicher-Cache der spaltenbasierten Engine auf freigegebenen Geräten:
Öffnen Sie das Manifest Ihres Datenbankclusters
DBCluster.Fügen Sie im Abschnitt
primarySpecdie AttributecolumnarSpillToDiskundultraFastCachezum Blockfeatureshinzu: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 keinen Wert für dieses Feld angeben, werden standardmäßig 5 % des Datenträger-Cache der spaltenorientierten Engine zugewiesen.ULTRAFAST_CACHE_SIZE: Die maximale Größe des ultraschnellen Cache-Puffers, der von AlloyDB Omni reserviert wird, z. B.100Gi. Wenn keine Angabe erfolgt, wird der gesamte verbleibende Speicherplatz unterlocalVolume.pathverwendet.DISK_CACHE_DIR_PATH: Der Ordnerpfad für die ultraschnellen Cache-Dateien, z. B./mnt/disks/chillcache.
Wenden Sie das aktualisierte
DBCluster-Manifest entweder mitalloydbctloder Ansible an:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ersetzen Sie Folgendes:
DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Bereitstellungsspezifikationsverzeichnis.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, den Sie verwenden, um über SSH eine Verbindung zu den Knoten in Ihrem Cluster herzustellen.SSH_KEY_PATH: Der lokale Pfad zur privaten SSH-Schlüsseldatei, die für die Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook auf Ihrem Steuerungsknoten 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 Bereitstellungsspezifikationsverzeichnis.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Vektorisierte Joins aktivieren
Die spaltenbasierte Engine bietet die Funktion vektorisierter Join, mit der die Leistung von Joins verbessert werden kann, indem die vektorisierte Verarbeitung auf qualifizierte 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 den einzelnen Methoden 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.
google_columnar_engine.enable_vectorized_join: "on" zum Abschnitt parameters Ihres DBCluster-Manifests hinzu. Weitere Informationen finden Sie unter AlloyDB Omni-Datenbankparameter konfigurieren.
AlloyDB Omni weist dem vektorisierten Join-Feature standardmäßig einen Thread zu. Sie können die Anzahl der für dieses Feature 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 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 für eine 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 festzulegen:
Öffnen Sie das Manifest Ihres Datenbankclusters
DBCluster.Legen Sie im Abschnitt
primarySpecden Parametergoogle_columnar_engine.enabledim Blockparametersaufofffest: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 Bereitstellungsspezifikationsverzeichnis.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, den Sie verwenden, um über SSH eine Verbindung zu den Knoten in Ihrem Cluster herzustellen.SSH_KEY_PATH: Der lokale Pfad zur privaten SSH-Schlüsseldatei, die für die Verbindung zu Ihren Knoten verwendet wird.
Führen Sie das Playbook auf Ihrem Steuerungsknoten 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 Bereitstellungsspezifikationsverzeichnis.DBCLUSTER_SPECIFICATION: der Pfad zum geändertenDBCluster-Manifest.
Nächste Schritte
Vollständige Liste der Datenbank-Flags für die spaltenbasierte Engine
Probieren Sie das Codelab Schnellere Analyseabfragen mit der spaltenbasierten Engine in AlloyDB Omni aus.