Configurare il motore colonnare in AlloyDB Omni

Seleziona una versione della documentazione:

Questa pagina descrive 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 utilizzare il motore colonnare quando utilizzi AlloyDB per PostgreSQL su Google Cloud, consulta Configura il motore colonnare.

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

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 questo flag su un'istanza, segui questi passaggi:

  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 nella sezione successiva prima di riavviare il server del database. In caso contrario, segui i due passaggi successivi per riavviare subito il server del database.

  3. Arresta il server di database.

  4. Avvia il server di database.

Configura le dimensioni del datastore di colonne

Quando il motore colonnare è abilitato su un'istanza, AlloyDB alloca una parte della memoria dell'istanza per archiviare i dati colonnari. L'assegnazione di RAM ad alta velocità allo spazio di archiviazione a colonne garantisce che AlloyDB possa accedere ai dati colonnari 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, segui questi passaggi:

  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 le nuove dimensioni del columnstore, in megabyte.

  2. Arresta il server di database.

  3. Avvia il server di database.

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 uno dei due metodi.

Per abilitare il join vettorizzato su 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 PostgreSQL ALTER SYSTEM:

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

Per impostazione predefinita, AlloyDB assegna 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.

Aggiorna manualmente il motore colonnare

Per impostazione predefinita, il motore colonnare è impostato per aggiornare automaticamente l'archivio di colonne in background quando è abilitato. In alcune situazioni, ad esempio se l'aggiornamento automatico non aggiorna una relazione con un numero elevato di blocchi non validi, potrebbe essere necessario aggiornare manualmente l'archivio colonnare.

Per aggiornare manualmente il motore di colonne, esegui questa 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.

Disattiva il motore colonnare

Per disattivare il motore colonnare su un'istanza, imposta il flag google_columnar_engine.enabled su off.

Per impostare questo flag su un'istanza, segui questi passaggi:

  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.

Risolvi i problemi relativi al motore colonnare

Correggi un errore "memoria condivisa insufficiente"

Se esegui AlloyDB Omni senza memoria condivisa sufficiente per l'utilizzo del motore colonnare, potresti visualizzare questo errore:

Insufficient shared memory for generating the columnar formats.

Puoi risolvere questo problema specificando la quantità di memoria condivisa disponibile per il container AlloyDB Omni. La procedura varia a seconda del sistema operativo 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 container AlloyDB Omni, specificando un valore di memoria condivisa più grande per il flag --shm-size.

Correggi le colonne non compilate

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

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

  • I requisiti del motore colonnare non sono soddisfatti.

Per trovare la causa di questo problema, prova quanto segue:

  • Verifica che le tabelle o le viste materializzate nella nostra query si trovino nel motore colonnare.

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

Passaggi successivi