Configurare il motore colonnare in AlloyDB Omni

Seleziona una versione della documentazione:

In questa pagina viene descritto come attivare o disattivare il motore colonnare su un cluster di database AlloyDB Omni. Inoltre, spiega come configurare una dimensione iniziale appropriata per l'archivio di colonne.

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:

  1. Apri il manifest del cluster di database DBCluster.

  2. Nella sezione primarySpec, aggiungi il parametro google_columnar_engine.enabled al blocco parameters:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "on"
    

    Sostituisci DB_CLUSTER_NAME con il nome del cluster di database.

  3. L'orchestratore RPM riavvia automaticamente il database per applicare le modifiche ai parametri. Applica il manifest DBCluster aggiornato utilizzando uno dei seguenti metodi:

    alloydbctl

    alloydbctl 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 manifest DBCluster che hai modificato.

    Ansible

    1. 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.update
      

      Sostituisci 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.
    2. 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 manifest DBCluster che 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:

  1. Apri il manifest del cluster di database DBCluster.

  2. Nella sezione primarySpec, aggiungi la configurazione del motore colonnare al blocco parameters:

    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.
  3. L'orchestratore RPM riavvia automaticamente il database per applicare le modifiche ai parametri. Applica il manifest DBCluster aggiornato utilizzando uno dei seguenti metodi:

    alloydbctl

    alloydbctl 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 manifest DBCluster che hai modificato.

    Ansible

    1. 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.update
      

      Sostituisci 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.
    2. 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 manifest DBCluster che 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:

  1. Apri il manifest del cluster di database DBCluster.

  2. Nella sezione primarySpec, aggiungi l'attributo columnarSpillToDisk con cacheSize e localVolume.path al blocco features:

    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_PATH
    

    Sostituisci 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 esempio 50Gi.
    • 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.
  3. Applica il manifest DBCluster aggiornato utilizzando alloydbctl o Ansible:

    alloydbctl

    alloydbctl 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 manifest DBCluster che hai modificato.

    Ansible

    1. 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.update
      

      Sostituisci 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.
    2. 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 manifest DBCluster che 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:

  1. Apri il manifest del cluster di database DBCluster.

  2. Nella sezione primarySpec, aggiungi gli attributi columnarSpillToDisk e ultraFastCache al blocco features:

    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_PATH
    

    Sostituisci quanto segue:

    • DB_CLUSTER_NAME: il nome del cluster di database.
    • STORAGE_CACHE_SIZE: le dimensioni della cache di archiviazione colonnare, ad esempio 50Gi. 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 esempio 100Gi. Se non viene impostato, viene utilizzato tutto lo spazio su disco rimanente in localVolume.path.
    • DISK_CACHE_DIR_PATH: il percorso della cartella per i file della cache ultraveloce, ad esempio /mnt/disks/chillcache.
  3. Applica il manifest DBCluster aggiornato utilizzando alloydbctl o Ansible:

    alloydbctl

    alloydbctl 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 manifest DBCluster che hai modificato.

    Ansible

    1. 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.update
      

      Sostituisci 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.
    2. 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 manifest DBCluster che 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.

Per impostare questo parametro su un cluster di database, aggiungi 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:

  1. Apri il manifest del cluster di database DBCluster.

  2. Nella sezione primarySpec, imposta il parametro google_columnar_engine.enabled su off nel blocco parameters:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # ... existing cluster configuration ...
        primarySpec:
          # ... existing primary configuration ...
          parameters:
            google_columnar_engine.enabled: "off"
    

    Sostituisci DB_CLUSTER_NAME con il nome del cluster di database.

  3. L'orchestratore RPM riavvia automaticamente il database per applicare le modifiche ai parametri. Applica il manifest DBCluster aggiornato utilizzando uno dei seguenti metodi:

    alloydbctl

    alloydbctl 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 manifest DBCluster che hai modificato.

    Ansible

    1. 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.update
      

      Sostituisci 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.
    2. 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 manifest DBCluster che hai modificato.

Passaggi successivi