Configura il motore colonnare

Questa pagina descrive come abilitare o disabilitare il motore colonnare su un'istanza AlloyDB per PostgreSQL. Viene inoltre illustrato come configurare una dimensione iniziale appropriata per lo spazio di archiviazione a colonne, nonché le impostazioni della cache di memoria e di archiviazione per prestazioni ottimali.

Per utilizzare il motore colonnare quando utilizzi AlloyDB Omni, consulta Abilitare il motore colonnare in AlloyDB Omni.

Ognuna di queste azioni comporta la modifica del valore di un flag di database su una delle tue istanze AlloyDB. Per ulteriori informazioni sull' impostazione dei flag di database, consulta Configurare i flag di database di un'istanza.

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

Abilitare il motore colonnare

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

Dopo aver impostato questo flag, l'istanza viene riavviata automaticamente.

Per ulteriori informazioni sull'impostazione dei flag di database in AlloyDB, consulta Configurare i flag di database di un'istanza.

Configurare le dimensioni del datastore a colonne

Mentre il motore colonnare è abilitato su un'istanza, AlloyDB alloca una parte della memoria dell'istanza per archiviare i dati a colonne. L'assegnazione di RAM ad alta velocità allo spazio di archiviazione a colonne garantisce che AlloyDB possa accedere ai dati a colonne il più rapidamente possibile.

La cache di memoria e di archiviazione rappresenta la capacità complessiva del motore colonnare.

Configurare la memoria per il motore colonnare

Se lo spazio di archiviazione a colonne diventa più grande della parte allocata della memoria dell'istanza, AlloyDB utilizza automaticamente il livello di cache sottostante dell'istanza per archiviare i dati a colonne aggiuntivi.

In AlloyDB, puoi caricare sia le relazioni sia le visualizzazioni materializzate e gli indici ScaNN nel motore colonnare per accelerare le prestazioni delle query.

Per impostazione predefinita, AlloyDB alloca il 30% della memoria dell'istanza allo spazio di archiviazione a colonne e regola automaticamente l'allocazione totale se ridimensioni l'istanza. Puoi modificare la memoria dell'istanza fino a un massimo consigliato del 50%, anche se è consentito il 70%. Per trovare le dimensioni della memoria del motore colonnare consigliate per la tua istanza, consulta Dimensioni della memoria dello spazio di archiviazione a colonne consigliate.

Puoi anche impostare l'allocazione su una dimensione fissa e specifica utilizzando il google_columnar_engine.memory_size_in_mb flag. Per ripristinare l'allocazione predefinita di AlloyDB, rimuovi il flag dall'istanza.

Per ulteriori informazioni sull'impostazione o l'eliminazione dei flag, consulta Configurare i flag di database di un' istanza.

Configurare il caricamento degli indici ScaNN nel motore colonnare

Il motore colonnare accelera la ricerca vettoriale quando gli indici ScaNN vengono inseriti al suo interno.

Per abilitare la cache degli indici a colonne, imposta il google_columnar_engine.enable_index_caching flag su on.

Per disabilitare questa funzionalità, imposta il flag su off.

Configurare la cache di archiviazione per il motore colonnare

Devi dimensionare google_columnar_engine.storage_cache_size rispetto all'impostazione google_columnar_engine.memory_size_in_mb perché la memoria del motore colonnare viene utilizzata per i metadati in memoria della cache di archiviazione. Il rapporto di dimensionamento consigliato è di circa 100-1000 volte la dimensione della memoria. Ad esempio, con un valore di google_columnar_engine.memory_size_in_mb pari a 1024 (1 GB), devi impostare google_columnar_engine.storage_cache_size tra 100 GB e 1000 GB.

Il provisioning della cache di archiviazione del motore colonnare viene eseguito in base al livello dell'istanza.

Livello istanza Dimensioni predefinite della cache del motore colonnare
N2 C4A
Principale Pool di replica Pool principale o di replica
1 vCPU N/D N/D 0
2 vCPU 18,75 GB 37,5 GB N/D
4 vCPU 18,75 GB 37,5 GB 18,75 GB
8 vCPU 18,75 GB 37,5 GB 37,75 GB
16 vCPU 37,5 GB 37,5 GB 75 GB
32 vCPU 75 GB 75 GB 112,5 GB
48 vCPU N/D N/D 187,5 GB
64 vCPU 150 GB 150 GB 262,5 GB
72 vCPU N/D N/D 300 GB
96 vCPU 300 GB 300 GB N/D
128 vCPU 450 GB 450 GB N/D

Il flag google_columnar_engine.storage_cache_size consente di regolare la cache di archiviazione del motore colonnare, con le limitazioni dei valori minimo e massimo elencati nella tabella seguente:

Livello istanza Dimensioni minime della cache del motore colonnare Dimensioni massime della cache del motore colonnare
N2 C4A
Principale Pool di replica Pool principale o di replica
1 vCPU N/D N/D N/D 0
2 vCPU 0 187,5 GB 375 GB N/D
4 vCPU 0 187,5 GB 375 GB 187,5 GB
8 vCPU 0 187,5 GB 375 GB 375 GB
16 vCPU 0 375 GB 375 GB 750 GB
32 vCPU 0 750 GB 750 GB 1125 GB
48 vCPU N/D N/D N/D 1125 GB
64 vCPU 0 1500 GB 1500 GB 2625 GB
72 vCPU N/D N/D N/D 3000 GB
96 vCPU 0 3000 GB 3000 GB N/D
128 vCPU 0 4500 GB 4500 GB N/D

Monitorare i dati della cache di archiviazione per il motore colonnare

Per visualizzare e monitorare i dati relativi alla cache di archiviazione del motore colonnare, puoi utilizzare i seguenti comandi:

Comando Descrizione
SELECT google_columnar_engine_storage_cache_used(); Restituisce le dimensioni della cache di archiviazione del motore colonnare utilizzata.
SELECT google_columnar_engine_storage_cache_available(); Restituisce le dimensioni della cache di archiviazione del motore colonnare non utilizzata.
SHOW google_columnar_engine.storage_cache_size; Restituisce la quantità totale delle dimensioni configurate della cache di archiviazione per il motore colonnare.

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

Per abilitare il join vettorializzato su un'istanza, imposta il flag google_columnar_engine.enable_vectorized_join dell'istanza su on.

Per ulteriori informazioni sull'impostazione dei flag di database, consulta Configurare i flag di database di un' istanza.

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

Aggiornare manualmente il motore colonnare

Per impostazione predefinita, quando abiliti il motore colonnare, questo viene configurato per aggiornare automaticamente lo spazio di archiviazione a colonne in background.

Per i carichi di lavoro con una frequenza elevata di modifiche dei dati, come operazioni INSERT, UPDATE o DELETE frequenti, puoi aggiornare manualmente lo spazio di archiviazione a colonne dopo queste modifiche per mantenere aggiornato l'indice.

Per aggiornare manualmente il motore colonnare, 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.

Disabilitare il motore colonnare

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

Per ulteriori informazioni sull'impostazione dei flag di database in AlloyDB, consulta Configurare i flag di database di un'istanza.

Dopo aver impostato questo flag, l'istanza viene riavviata automaticamente.

Risolvere i problemi del motore colonnare

Se le colonne non vengono inserite 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 a eseguire le seguenti operazioni:

  • Esamina i log di controllo dell'istanza audit.

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

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

Passaggi successivi