Per una panoramica concettuale del motore colonnare AlloyDB, consulta la panoramica del motore colonnare AlloyDB Omni.
Abilita il motore colonnare
Per utilizzare il motore colonnare su un'istanza, imposta il flag google_columnar_engine.enabled dell'istanza su on.
Per impostare il parametro google_columnar_engine.enabled su on, completa i
seguenti passaggi:
Apri il manifest del cluster di database
DBCluster.Nella sezione
primarySpec, aggiungi il parametrogoogle_columnar_engine.enabledal bloccoparameters:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on"Sostituisci
DB_CLUSTER_NAMEcon il nome del cluster di database.L'orchestratore RPM riavvia automaticamente il database per applicare le modifiche ai parametri. Applica il manifest
DBClusteraggiornato utilizzando uno dei seguenti metodi:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file del playbook
update.yml:--- - 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.updateSostituisci quanto segue:
SSH_USER: il nome utente che utilizzi per connetterti ai nodi del cluster tramite SSH.SSH_KEY_PATH: il percorso locale del file della chiave privata SSH utilizzato per connettersi ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile aggiuntiva:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Configura le dimensioni del datastore di colonne
Quando il motore colonnare è abilitato su un'istanza, AlloyDB Omni alloca una parte della memoria dell'istanza per archiviare i dati colonnari. Se dedichi RAM ad alta velocità allo spazio di archiviazione a colonne, verifichi che AlloyDB Omni possa accedere ai dati colonnari il più rapidamente possibile.
La memoria e la cache di archiviazione insieme rappresentano la capacità complessiva del motore colonnare.
Configura la memoria
Puoi impostare l'allocazione su una dimensione fissa utilizzando il flag google_columnar_engine.memory_size_in_mb.
Per impostare il parametro google_columnar_engine.memory_size_in_mb, completa i
seguenti passaggi:
Apri il manifest del cluster di database
DBCluster.Nella sezione
primarySpec, aggiungi la configurazione del motore colonnare al bloccoparameters: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"Sostituisci quanto segue:
DB_CLUSTER_NAME: il nome del cluster di database.MEMORY_SIZE_MB: la quantità di memoria, in megabyte, da allocare al motore colonnare.
L'orchestratore RPM riavvia automaticamente il database per applicare le modifiche ai parametri. Applica il manifest
DBClusteraggiornato utilizzando uno dei seguenti metodi:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file del playbook
update.yml:--- - 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.updateSostituisci quanto segue:
SSH_USER: il nome utente che utilizzi per connetterti ai nodi del cluster tramite SSH.SSH_KEY_PATH: il percorso locale del file della chiave privata SSH utilizzato per connettersi ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile aggiuntiva:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Configura la cache di archiviazione
Puoi configurare la cache di archiviazione del motore colonnare su dispositivi dedicati o condivisi.
Dispositivi dedicati
Per configurare un dispositivo dedicato per la cache di archiviazione del motore colonnare, completa i seguenti passaggi:
Apri il manifest del cluster di database
DBCluster.Nella sezione
primarySpec, aggiungi l'attributocolumnarSpillToDiskconcacheSizeelocalVolume.pathal bloccofeatures: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_PATHSostituisci quanto segue:
DB_CLUSTER_NAME: il nome del cluster di database.STORAGE_CACHE_SIZE: il limite di dimensioni per la cache di archiviazione del motore colonnare, ad esempio50Gi.COLUMNAR_CACHE_DIR_PATH: il percorso del file system della directory dedicata per la cache di archiviazione del motore colonnare, ad esempio/mnt/disks/columnarcache.
Applica il manifest
DBClusteraggiornato utilizzandoalloydbctlo Ansible:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file del playbook
update.yml:--- - 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.updateSostituisci quanto segue:
SSH_USER: il nome utente che utilizzi per connetterti ai nodi del cluster tramite SSH.SSH_KEY_PATH: il percorso locale del file della chiave privata SSH utilizzato per connettersi ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile aggiuntiva:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Dispositivi condivisi
Se non specifichi localVolume.path in columnarSpillToDisk, la cache di archiviazione del motore colonnare condivide lo spazio di archiviazione della cache del disco configurato in ultraFastCache.
Per configurare la cache di archiviazione del motore colonnare sui dispositivi condivisi, completa i seguenti passaggi:
Apri il manifest del cluster di database
DBCluster.Nella sezione
primarySpec, aggiungi gli attributicolumnarSpillToDiskeultraFastCacheal bloccofeatures: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_PATHSostituisci quanto segue:
DB_CLUSTER_NAME: il nome del cluster di database.STORAGE_CACHE_SIZE: le dimensioni della cache di archiviazione colonnare, ad esempio50Gi. Se non specifichi un valore per questo campo, il 5% della cache del disco viene allocato al motore colonnare per impostazione predefinita.ULTRAFAST_CACHE_SIZE: la dimensione massima del buffer della cache ultraveloce riservato da AlloyDB Omni, ad esempio100Gi. Se non viene impostato, viene utilizzato tutto lo spazio su disco rimanente inlocalVolume.path.DISK_CACHE_DIR_PATH: il percorso della cartella per i file della cache ultraveloce, ad esempio/mnt/disks/chillcache.
Applica il manifest
DBClusteraggiornato utilizzandoalloydbctlo Ansible:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file del playbook
update.yml:--- - 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.updateSostituisci quanto segue:
SSH_USER: il nome utente che utilizzi per connetterti ai nodi del cluster tramite SSH.SSH_KEY_PATH: il percorso locale del file della chiave privata SSH utilizzato per connettersi ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile aggiuntiva:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Abilita join vettorizzato
Il motore colonnare dispone di una funzionalità di join vettorizzato che può migliorare le prestazioni dei join applicando l'elaborazione vettorizzata alle query idonee.
Dopo aver attivato il join vettorizzato, il planner delle query di AlloyDB ha la possibilità di applicare l'operatore di join vettorizzato anziché l'operatore di join hash PostgreSQL standard. Il planner prende questa decisione confrontando il costo di esecuzione della query utilizzando ciascun metodo.
Per abilitare il join vettorizzato su un'istanza, imposta il flag google_columnar_engine.enable_vectorized_join dell'istanza su on.
google_columnar_engine.enable_vectorized_join: "on" alla sezione parameters del manifest DBCluster. Per saperne di più, consulta Configura i parametri del database AlloyDB Omni.
Per impostazione predefinita, AlloyDB Omni alloca un thread alla funzionalità di join vettorizzato. Puoi aumentare il numero di thread disponibili per questa funzionalità impostando il flag google_columnar_engine.vectorized_join_threads su un valore più alto. Il valore massimo è cpu_count * 2.
Aggiorna manualmente il motore colonnare
Per impostazione predefinita, quando il motore colonnare è abilitato, aggiorna l'archivio di colonne in background.
Per aggiornare manualmente il motore di colonne, esegui questa query SQL:
SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');
Sostituisci TABLE_NAME con il nome della tabella o della vista materializzata che vuoi aggiornare manualmente.
Disabilita il motore colonnare
Per disattivare il motore colonnare su un'istanza, imposta il flag google_columnar_engine.enabled su off.
Per impostare il parametro google_columnar_engine.enabled su off, completa i
seguenti passaggi:
Apri il manifest del cluster di database
DBCluster.Nella sezione
primarySpec, imposta il parametrogoogle_columnar_engine.enabledsuoffnel bloccoparameters:DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "off"Sostituisci
DB_CLUSTER_NAMEcon il nome del cluster di database.L'orchestratore RPM riavvia automaticamente il database per applicare le modifiche ai parametri. Applica il manifest
DBClusteraggiornato utilizzando uno dei seguenti metodi:alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file del playbook
update.yml:--- - 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.updateSostituisci quanto segue:
SSH_USER: il nome utente che utilizzi per connetterti ai nodi del cluster tramite SSH.SSH_KEY_PATH: il percorso locale del file della chiave privata SSH utilizzato per connettersi ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile aggiuntiva:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"Sostituisci quanto segue:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche del deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Passaggi successivi
Consulta l'elenco completo dei flag di database del motore colonnare.
Prova il codelab Accelerazione delle query analitiche con il motore colonnare in AlloyDB Omni.