Configurare il motore colonnare in AlloyDB Omni

Questa pagina descrive come attivare o disattivare il motore colonnare su un cluster di database AlloyDB Omni. Inoltre, illustra come configurare una dimensione iniziale appropriata per il relativo archivio colonne.

Per utilizzare il motore colonnare quando utilizzi AlloyDB per PostgreSQL su Google Cloud, consulta Configurare il motore colonnare.

Per una panoramica concettuale del motore colonnare AlloyDB, consulta Informazioni sul motore colonnare AlloyDB.

Attivare il motore colonnare

Per utilizzare il motore colonnare in un'istanza, imposta il flag google_columnar_engine.enabled dell'istanza su on.

Per impostare questo flag su un'istanza:

  1. Esegui il comando PostgreSQL ALTER SYSTEM:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. Se vuoi modificare la configurazione del motore colonnare, segui le istruzioni riportate nella sezione successiva prima di riavviare il server di database. In caso contrario, segui i due passaggi successivi per riavviare subito il server di database.

  3. Arresta il server di database.

  4. Avvia il server di database.

Configurare le dimensioni dell'archivio colonne

Quando il motore a colonne è abilitato in un'istanza, AlloyDB alloca una parte della memoria dell'istanza per memorizzare i suoi dati a colonne. Se dedichi RAM ad alta velocità allo spazio di archiviazione a colonne, AlloyDB può accedere ai dati a colonne il più rapidamente possibile.

Puoi anche impostare l'allocazione su una dimensione fissa e specifica utilizzando il flag google_columnar_engine.memory_size_in_mb. Per impostare questo flag su un'istanza:

  1. Esegui il comando PostgreSQL ALTER SYSTEM:

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
    

    Sostituisci COLUMN_STORE_SIZE con la nuova dimensione della colonna store, in megabyte.

  2. Arresta il server di database.

  3. Avvia il server di database.

Attivare l'unione vettore

Il motore colonnare dispone di una funzionalità di join vettoriale che può migliorare le prestazioni dei join applicando l'elaborazione vettoriale alle query idonee.

Dopo aver attivato l'unione vettoriale, lo schema di query di AlloyDB ha la possibilità di applicare l'operatore di unione vettoriale anziché l'operatore di unione hash PostgreSQL standard. Il pianificatore prende questa decisione confrontando il costo di esecuzione della query utilizzando uno dei due metodi.

Per attivare l'unione vettore in un'istanza, imposta il flag google_columnar_engine.enable_vectorized_join dell'istanza su on.

Per impostare questo flag su un'istanza, esegui il comando ALTER SYSTEM PostgreSQL:

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

Per impostazione predefinita, AlloyDB alloca un thread alla funzionalità di join vettore. Puoi aumentare il numero di thread disponibili per questa funzionalità impostando il flag google_columnar_engine.vectorized_join_threads su un valore maggiore.

Aggiornare manualmente il motore colonnare

Per impostazione predefinita, il motore colonnare è impostato per aggiornare automaticamente il magazzino delle colonne in background quando è abilitato. Potresti dover aggiornare manualmente l'armadietto colonnare in determinate situazioni, ad esempio se l'aggiornamento automatico non aggiorna una relazione con un numero elevato di blocchi non validi.

Per aggiornare manualmente il motore delle colonne, esegui la seguente query SQL:

SELECT google_columnar_engine_refresh('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 columbar su un'istanza, imposta il flag google_columnar_engine.enabled su off.

Per impostare questo flag su un'istanza:

  1. Esegui il comando PostgreSQL ALTER SYSTEM:

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. Arresta il server di database.

  3. Avvia il server di database.

Risolvere i problemi relativi al motore colonnare

Correggere un errore di "memoria condivisa insufficiente"

Se esegui AlloyDB Omni senza memoria condivisa sufficiente per il motore colonnare, potresti visualizzare questo errore:

Insufficient shared memory for generating the columnar formats.

Puoi risolvere il problema specificando la quantità di memoria condivisa disponibile per il contenitore AlloyDB Omni. La procedura varia in base al sistema operativo dell'host

Linux

Aumenta le dimensioni della partizione /dev/shm della macchina host utilizzando una tecnica come la modifica del file /etc/fstab.

macOS

Installa un nuovo contenitore AlloyDB Omni, specificando un valore della memoria condivisa più grande per il flag --shm-size.

Correggere le colonne che non vengono compilate

Se le colonne non vengono compilate nel motore a colonne, potrebbe verificarsi una delle seguenti situazioni:

  • Le colonne che vuoi aggiungere includono un tipo di dati non supportato.

  • I requisiti del motore colonnare non vengono soddisfatti.

Per trovare la causa del problema, prova quanto segue:

  • Verifica che le tabelle o le viste materializzate nella query siano nel motore colonnare.

  • Verifica l'utilizzo del motore colonnare utilizzando l'istruzione EXPLAIN.

  • Passaggi successivi