Panoramica del motore colonnare AlloyDB Omni

Questa pagina descrive il motore colonnare AlloyDB Omni e fornisce istruzioni su come utilizzarlo nelle installazioni di container e cluster Kubernetes. Questa pagina presuppone che tu abbia dimestichezza con PostgreSQL.

Il motore colonnare AlloyDB Omni accelera l'elaborazione delle query SQL di scansioni, join e aggregazioni fornendo i seguenti componenti:

  • Un magazzino delle colonne contenente dati di tabelle e viste materializzate per le colonne selezionate, riorganizzati in un formato orientato alle colonne.

  • Un pianificatore delle query e un motore di esecuzione colonnari che supportano l'utilizzo dell'archivio a colonne nelle query.

Puoi utilizzare il motore colonnare nell'istanza principale, in un'istanza del pool di lettura o in entrambe. Puoi anche utilizzare la colonnizzazione automatica per analizzare il tuo carico di lavoro e compilare automaticamente il magazzino delle colonne con le colonne che offrono il miglior miglioramento del rendimento.

Per utilizzare il motore colonnare con una query specifica, tutte le colonne a cui viene fatto riferimento nella query, come le unioni e le scansioni, devono trovarsi nel magazzino delle colonne.

Per impostazione predefinita, il motore colonnare è impostato per utilizzare 1 GB di memoria dell'istanza. A seconda del carico di lavoro, dell'utilizzo della memoria e se hai configurato un pool di lettura, puoi scegliere di ridurre l'allocazione della memoria dell'engine colonnare nell'istanza principale e allocare più memoria all'istanza del pool di lettura.

Per visualizzare e monitorare l'utilizzo della memoria da parte del motore colonnare, consulta Visualizzare l'utilizzo della memoria del magazzino delle colonne. Per modificare le dimensioni della memoria utilizzata dal magazzino delle colonne, consulta Configurare le dimensioni del magazzino delle colonne. Per trovare le dimensioni della memoria del motore colonnare consigliate per la tua istanza, consulta Consiglia dimensioni della memoria dello spazio dati delle colonne.

Tipi di query che beneficiano del motore colonnare

Alcune query possono trarre vantaggio dal motore colonnare. Di seguito è riportato un elenco di operazioni e dei relativi pattern di query che traggono il massimo vantaggio dall'archivio a colonne:

Operazione Pattern di query
Scansione della tabella Filtri selettivi, ad esempio le clausole WHERE.
Un numero ridotto di colonne di una tabella o di una vista materializzata più grande.
Espressioni come LIKE, SUBSTR o TRIM.
Funzioni di aggregazione Solo espressioni come SUM, MIN, MAX, AVG e COUNT.
All'inizio della query di una scansione colonnare.
Senza raggruppamento o raggruppate per colonne.
ORDER-BY Solo se l'operatore si trova all'inizio della query di una scansione colonnare.
SORT Solo se l'operatore si trova all'inizio della query di una scansione colonnare e ordina solo in base alle colonne di base della tabella o della vista materializzata.
LIMIT Solo se l'operatore si trova all'inizio della query di una scansione colonnare e prima di qualsiasi operatore SORT o GROUP BY.
INNER HASH JOIN Solo se le chiavi utilizzate sono colonne e non vengono utilizzati qualificatori di join.
Join selettivi Solo se le unioni si trovano all'inizio della query di una scansione colonnare.

Per saperne di più sulle query che funzionano meglio con il motore colonnare, se il motore colonnare è stato utilizzato da una query e come è stato utilizzato, consulta Verificare l'utilizzo del motore colonnare utilizzando EXPLAIN.

Utilizzare il motore colonnare

Per utilizzare il motore colonnare in un'istanza AlloyDB Omni, svolgi i seguenti passaggi di alto livello:

  1. Attiva il motore nell'istanza.

    L'attivazione del motore è un'operazione una tantum e richiede il riavvio del database.

  2. Aggiungi colonne all'archivio colonne.

    Per aggiungere colonne al magazzino delle colonne, utilizza uno dei seguenti metodi:

  3. Puoi monitorare i contenuti del magazzino delle colonne utilizzando la vista g_columnar_relations e, dopo aver aggiunto le colonne, puoi utilizzare l'istruzione EXPLAIN per verificare l'utilizzo del motore colonnare nelle query SQL.

Per istruzioni dettagliate su come utilizzare il motore colonnare, consulta Configurare il motore colonnare.

Quali dati puoi aggiungere al data store delle colonne

Esistono alcune limitazioni relative ai tipi di dati e alle origini dati che puoi utilizzare quando aggiungi colonne al repository delle colonne.

Tipi di dati supportati

Il motore colonnare supporta solo le colonne con i seguenti tipi di dati integrati:

  • array
  • bigint
  • boolean
  • bytea
  • char
  • date
  • decimal
  • double precision
  • enum
  • float4
  • float8
  • integer
  • json
  • jsonb
  • numeric
  • real
  • serial
  • short
  • smallint
  • text
  • timestamp
  • uuid
  • varchar

Il motore colonnare ignora qualsiasi tentativo di aggiungere manualmente colonne con tipi di dati non supportati al magazzino delle colonne.

Origini dati non supportate

Il motore a colonne non supporta tabelle o viste materializzate con i seguenti attributi come origini dati:

  • Tabelle partizionate non a livello di primo livello

  • Tabelle esterne

  • Tabelle o viste con meno di 5000 righe

Limitazioni del motore colonnare

  • Se stai eseguendo una query analitica su una colonna con un indice, lo strumento di ottimizzazione di AlloyDB Omni potrebbe scegliere di utilizzare l'organizzazione in righe.
  • Le colonne aggiunte manualmente al magazzino delle colonne non vengono rimosse automaticamente. Per rimuovere obbligatoriamente le colonne aggiunte manualmente, utilizza google_columnar_engine_drop nell'istanza.
  • La colonnarizzazione automatica potrebbe aggiungere e rimuovere dinamicamente le colonne in base all'utilizzo delle query.
  • Non tutti i tipi di dati sono supportati dal motore colonnare. Per visualizzare i tipi di dati supportati, consulta la sezione Tipi di dati supportati.
  • Gli aggiornamenti frequenti delle righe rendono non validi i dati delle colonne. Per convalidare una tabella o una visualizzazione materializzata nell'archivio colonnare, puoi ridurre la frequenza dell'aggiornamento o pianificare gli aggiornamenti del motore colonnare più di frequente.

    Puoi confrontare le colonne invalid_block_count e total_block_count in g_columnar_relations per verificare se la tua tabella o visualizzazione è interessata. Se la tabella o la visualizzazione subiscono modifiche frequenti o di elevato volume, il valore invalid_block_count sarà elevato.

Passaggi successivi