Per una panoramica concettuale del motore colonnare AlloyDB, consulta Panoramica del motore colonnare AlloyDB Omni.
Attivare il motore colonnare
Per utilizzare il motore colonnare su un'istanza, imposta il flag dell'istanza
google_columnar_engine.enabled
su on.
Per impostare il parametro google_columnar_engine.enabled su on:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file 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 utilizzando SSH.SSH_KEY_PATH: il percorso locale del file di chiave privata SSH utilizzato per connetterti ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile extra:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Configurare le dimensioni dell'archivio colonne
Quando il motore colonnare è abilitato su un'istanza, AlloyDB Omni alloca una parte della memoria dell'istanza per archiviare i dati colonnari. L'allocazione di RAM ad alta velocità all'archivio colonne garantisce che AlloyDB Omni possa accedere ai dati colonnari il più rapidamente possibile.
La memoria e la cache di archiviazione rappresentano insieme la capacità complessiva del motore colonnare.
Configurare la memoria
Puoi impostare l'allocazione su una dimensione fissa utilizzando il
google_columnar_engine.memory_size_in_mb flag.
Per impostare il parametro google_columnar_engine.memory_size_in_mb:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file 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 utilizzando SSH.SSH_KEY_PATH: il percorso locale del file di chiave privata SSH utilizzato per connetterti ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile extra:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Configurare 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:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file 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 utilizzando SSH.SSH_KEY_PATH: il percorso locale del file di chiave privata SSH utilizzato per connetterti ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile extra:
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 di 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 l'archiviazione della cache del disco configurata in ultraFastCache.
Per configurare la cache di archiviazione del motore colonnare su dispositivi condivisi:
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, per impostazione predefinita al motore colonnare viene allocato il 5% della cache del disco.ULTRAFAST_CACHE_SIZE: la dimensione massima del buffer della cache ultra veloce riservato da AlloyDB Omni, ad esempio100Gi. Se non è impostato, viene utilizzato tutto lo spazio su disco rimanente inlocalVolume.path.DISK_CACHE_DIR_PATH: il percorso della cartella per i file della cache ultra veloce, 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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file 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 utilizzando SSH.SSH_KEY_PATH: il percorso locale del file di chiave privata SSH utilizzato per connetterti ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile extra:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Attivare il join vettorializzato
Il motore colonnare ha una funzionalità di join vettorializzato che può migliorare le prestazioni dei join applicando l'elaborazione vettorializzata alle query idonee.
Dopo aver attivato il join vettorializzato, il pianificatore di query AlloyDB ha la possibilità di applicare l'operatore di join vettorializzato anziché l'operatore di hash join PostgreSQL standard. Il pianificatore prende questa decisione confrontando il costo di esecuzione della query utilizzando ciascun metodo.
Per attivare il join vettorializzato su un'istanza, imposta il flag dell'istanza
google_columnar_engine.enable_vectorized_join
su on.
Per impostare questo flag su un'istanza, esegui il ALTER SYSTEM comando PostgreSQL:
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
Per impostazione predefinita, AlloyDB Omni alloca un thread alla funzionalità di join vettorializzato. Puoi aumentare il numero di thread disponibili per
questa funzionalità impostando il
google_columnar_engine.vectorized_join_threads
flag su un valore maggiore. Il valore massimo è cpu_count * 2.
Aggiornare manualmente il motore colonnare
Per impostazione predefinita, quando il motore colonnare è abilitato, aggiorna l'archivio colonne in background.
Per aggiornare manualmente il motore colonnare, esegui la seguente 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.
Disattivare 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:
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 di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Ansible
Crea un file 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 utilizzando SSH.SSH_KEY_PATH: il percorso locale del file di chiave privata SSH utilizzato per connetterti ai nodi.
Esegui il playbook dal nodo di controllo, passando la specifica della risorsa come variabile extra:
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 di 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.