Questa pagina descrive come attivare o disattivare il motore colonnare su un'istanza AlloyDB per PostgreSQL. Viene inoltre illustrato come configurare una dimensione iniziale appropriata per il column store, nonché le impostazioni della cache di memoria e archiviazione per prestazioni ottimali.
Per utilizzare il motore colonnare quando utilizzi AlloyDB Omni, consulta Attiva il motore colonnare in AlloyDB Omni.
Ciascuna di queste azioni comporta la modifica del valore di un flag di database in una delle tue istanze AlloyDB. Per saperne di più 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
google_columnar_engine.enabled
dell'istanza su on
.
Per saperne di più sull'impostazione dei flag di database in AlloyDB, vedi Configurare i flag di database di un'istanza.
Configura le dimensioni dello spazio di archiviazione delle colonne
Mentre il motore a colonne è abilitato su un'istanza, AlloyDB alloca una parte della memoria dell'istanza per archiviare i dati a colonne. L'allocazione 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 insieme rappresentano la capacità complessiva del motore colonnare.
Configura la memoria per il motore colonnare
Se lo column store diventa più grande della porzione allocata della memoria dell'istanza, AlloyDB utilizza automaticamente il livello di cache sottostante dell'istanza per archiviare i dati colonnari aggiuntivi.In AlloyDB, puoi caricare sia le relazioni sia le viste 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 del 50%. Per trovare le dimensioni della memoria del motore colonnare consigliate per la tua istanza, consulta Consiglia le dimensioni della memoria dello store colonnare.
Puoi anche impostare l'allocazione su una dimensione fissa e specifica utilizzando il flag
google_columnar_engine.memory_size_in_mb
.
Per ripristinare l'allocazione predefinita di AlloyDB,
rimuovi il flag dall'istanza.
Per saperne di più sull'impostazione o l'eliminazione dei flag, consulta la sezione Configurare i flag di database di un'istanza.
Configura il caricamento degli indici ScaNN nel motore colonnare
Il motore colonnare accelera la ricerca vettoriale quando gli indici ScaNN vengono inseriti.
Per attivare la cache dell'indice colonnare, imposta il flag google_columnar_engine.enable_index_caching
su on
.
Per disattivare questa funzionalità, imposta il flag su off
.
Configura la cache di archiviazione per il motore colonnare
La cache di archiviazione del motore colonnare viene sottoposta a provisioning 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 i limiti dei valori minimo e massimo elencati nella tabella seguente:
Livello istanza | Dimensione minima della cache del motore colonnare | Dimensione massima 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 sulla 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 inutilizzata. |
SHOW google_columnar_engine.storage_cache_size; |
Restituisce la quantità totale delle dimensioni configurate della cache di archiviazione per il motore colonnare. |
Attiva l'unione vettorizzata
Il motore colonnare ha una funzionalità di join vettoriale che può migliorare le prestazioni dei join applicando l'elaborazione vettoriale alle query idonee.
Dopo aver attivato il join vettoriale, il pianificatore di query AlloyDB ha la possibilità di applicare l'operatore di join vettoriale anziché l'operatore di hash join PostgreSQL standard. Il planner prende questa decisione confrontando il costo di esecuzione della query utilizzando uno dei due metodi.
Per attivare il join vettoriale su un'istanza, imposta il flag
google_columnar_engine.enable_vectorized_join
dell'istanza su on
.
Per impostazione predefinita, AlloyDB alloca un thread alla funzionalità di join vettoriale. 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, quando abiliti il motore colonnare, questo è impostato per aggiornare automaticamente l'archivio colonne in background.
Per i carichi di lavoro con un elevato tasso di modifiche ai dati, come operazioni INSERT
, UPDATE
o DELETE
frequenti, puoi aggiornare manualmente l'archivio colonnare dopo queste modifiche per mantenere aggiornato l'indice.
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
.
Dopo aver impostato questo flag, l'istanza si riavvia automaticamente.
Risolvere i problemi del motore colonnare
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 del problema, prova quanto segue:
Controlla gli audit log della tua istanza.
Verifica che le tabelle o le viste materializzate nella query si trovino nel motore colonnare.
Verifica l'utilizzo del motore colonnare utilizzando l'istruzione
EXPLAIN
.
Passaggi successivi
Consulta l'elenco completo dei flag del database del motore colonnare.
Scopri di più sulla conversione automatica in colonne.
Scopri come accelerare le query analitiche utilizzando il motore colonnare AlloyDB.