Configura il motore colonnare

Per accelerare le query analitiche e ottimizzare le prestazioni per i workload di elaborazione analitica e transazionale ibrida (HTAP), puoi abilitare il motore colonnare su un'istanza AlloyDB per PostgreSQL. Puoi anche configurare la dimensione della memoria iniziale per l'archivio di colonne e regolare le impostazioni della cache di memoria e archiviazione in base ai requisiti del tuo workload.

Per utilizzare il motore colonnare in AlloyDB Omni, consulta Abilita 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 saperne di più sull'impostazione dei flag di database, consulta Configura i flag di database di un'istanza.

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

Abilita il motore colonnare

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

Dopo aver impostato questo flag, l'istanza si riavvia automaticamente.

Per saperne di più sull'impostazione dei flag di database in AlloyDB, consulta Configura i flag di database di un'istanza.

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.

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

Configura la memoria per il motore colonnare

Se l'archivio 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 colonnari aggiuntivi.

In AlloyDB, puoi caricare relazioni, viste materializzate e indici vettoriali 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. Per un'istanza con 1 vCPU, l'allocazione predefinita è del 10%. AlloyDB 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 un'istanza con 1 vCPU, il valore massimo consentito è 20%. Indipendentemente dalle dimensioni dell'istanza, l'allocazione minima è di 128 MB. Per trovare le dimensioni della memoria del motore colonnare consigliate per la tua istanza, consulta Dimensioni della memoria dell'archivio di colonne consigliate.

Puoi anche impostare l'allocazione su una dimensione fissa e specifica utilizzando il flag google_columnar_engine.memory_size_in_mb. Per fare in modo che AlloyDB torni all'allocazione predefinita, rimuovi il flag dall'istanza.

Per saperne di più sull'impostazione o sull'eliminazione dei flag, consulta Configura i flag di database di un'istanza.

Configura il caricamento degli indici vettoriali nel motore colonnare

Il motore colonnare accelera la ricerca vettoriale quando gli indici vettoriali HNSW o ScaNN vengono inseriti al suo interno. L'accelerazione del motore colonnare per gli indici HNSW è in disponibilità generale (GA), mentre l'accelerazione per gli indici ScaNN è in anteprima.

Per abilitare la cache degli indici colonnari, 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

Devi dimensionare google_columnar_engine.storage_cache_size in base 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 google_columnar_engine.memory_size_in_mb di 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 Leggi pool Pool principale o di lettura
1 vCPU N/D N/D 0
2 vCPU 18,75 GB 37,5 GB 18,75 GB
4 vCPU 18,75 GB 37,5 GB 18,75 GB
8 vCPU 18,75 GB 37,5 GB 37,5 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 minimi e massimi elencati nella tabella seguente:

Livello istanza Dimensione minima della cache del motore colonnare Dimensione massima della cache del motore colonnare
N2 C4A
Principale Leggi pool Pool principale o di lettura
1 vCPU N/D N/D N/D 0
2 vCPU 0 187,5 GB 375 GB 187,5 GB
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 0 N/D N/D 1875 GB
64 vCPU 0 1500 GB 1500 GB 2625 GB
72 vCPU 0 N/D N/D 3000 GB
96 vCPU 0 3000 GB 3000 GB N/D
128 vCPU 0 4500 GB 4500 GB N/D

Monitora 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 della dimensione configurata della cache di archiviazione per il motore colonnare.

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, Query Planner 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 saperne di più sull'impostazione dei flag di database, consulta Configura i flag di database di un'istanza.

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, quando attivi il motore colonnare, questo è impostato per aggiornare automaticamente l'archivio di colonne in background.

Per i workload con un tasso elevato di modifiche ai dati, ad esempio 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 colonnare, 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.

Disabilita il motore colonnare

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

Per saperne di più sull'impostazione dei flag di database in AlloyDB, consulta Configura i flag di database di un'istanza.

Dopo aver impostato questo flag, l'istanza si riavvia automaticamente.

Risolvi i problemi relativi al 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:

  • Esamina gli audit log dell'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