Questa pagina descrive come gestire i contenuti dell'archivio colonne del motore colonnare aggiungendo e rimuovendo manualmente le colonne.
In base al carico di lavoro, puoi aggiungere manualmente colonne all'archivio colonne o eliminare alcune o tutte le colonne di una tabella o di una vista materializzata dall'archivio colonne. La valutazione delle query utilizza automaticamente i dati colonnari archiviati per rispondere alle query.
Quando scegli le tabelle, le viste materializzate e le colonne da aggiungere al column store, considera sia le dimensioni del column store sia la forma del workload. I candidati ideali per la selezione includono tabelle o viste di grandi dimensioni che vengono scansionate di frequente. All'interno di queste tabelle o viste, identifica eventuali indici non univoci di grandi dimensioni utilizzati dal carico di lavoro OLAP. Puoi aggiungere le colonne di questi indici al columnstore ed eliminare potenzialmente gli indici, eliminando così il costo delle prestazioni associato alla loro manutenzione nell'istanza primaria.
Utilizza uno dei seguenti metodi per gestire i contenuti dell'archivio colonne del motore colonnare:
- Gestire i contenuti dello column store aggiornando i flag del database
- Gestire i contenuti dello column store utilizzando le funzioni SQL
Consulta Quali dati puoi aggiungere all'archivio colonne per informazioni sui tipi di dati e sulle origini dati che puoi utilizzare quando aggiungi tabelle, colonne e viste materializzate all'archivio colonne.
Prima di iniziare
- Devi disporre di uno di questi ruoli IAM nel progetto che stai utilizzando:
- Google Cloud
roles/alloydb.admin
(il ruolo IAM predefinito AlloyDB Admin)roles/owner
(il ruolo IAM di base Proprietario)roles/editor
(il ruolo IAM di base Editor)
Se non disponi di nessuno di questi ruoli, contatta l'Amministratore organizzazione per richiedere l'accesso.
Gestisci i contenuti del column store aggiornando i flag del database
Puoi gestire manualmente i contenuti dello column store aggiornando il flag del database google_columnar_engine.relations
. Il flag ha un singolo
valore che specifica tutte le origini dati del column store. Durante il
riavvio, le colonne specificate in questo flag vengono compilate automaticamente nell'archivio
colonne.
Puoi utilizzare questo flag insieme alla colonnarizzazione automatica. Se il
motore colonnare ha memoria disponibile dopo aver compilato le colonne che
specifichi tramite il flag google_columnar_engine.relations
, l'auto-columnarizzazione aggiunge altre colonne all'archivio colonne, in base alle
necessità.
Per ulteriori informazioni sull'impostazione dei flag di database di un'istanza utilizzando Google Cloud CLI o la console Google Cloud , consulta Configurare i flag di database di un'istanza.
Aggiungere colonne utilizzando i flag
Per aggiungere colonne all'archivio colonne, definisci il flag
google_columnar_engine.relations
di un'istanza. Imposta il valore su un elenco di elementi separati da virgole, in cui ogni elemento specifica un elenco di colonne da includere in una tabella specifica, nel seguente formato:
DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)
Sostituisci quanto segue:
DATABASE_NAME: il database contenente le colonne da aggiungere al column store.
SCHEMA_NAME: lo schema che identifica le tabelle o le viste materializzate da aggiungere al column store, ad esempio
public
.TABLE_NAME: la tabella o la vista materializzata contenente le colonne da aggiungere al column store.
COLUMN_LIST: un elenco separato da virgole delle colonne da aggiungere al column store.
Per aggiungere tutte le colonne di una tabella o di una vista materializzata, ometti l'elenco delle colonne:
DATABASE_NAME.SCHEMA_NAME.TABLE_NAME
Per saperne di più sull'impostazione dei flag di database su un'istanza, consulta Configurare i flag di database di un'istanza.
Una nota sulla sintassi della riga di comando
Se utilizzi Google Cloud CLI per impostare il flag google_columnar_engine.relations
, devi utilizzare la sintassi del delimitatore alternativo per separare i flag di database che hai impostato. Questo perché l'elenco delle colonne è separato da virgole, il che richiede di utilizzare un carattere diverso dalla virgola quando si specificano i flag all'interno dello stesso argomento della riga di comando.
L'esempio seguente mostra l'utilizzo di gcloud CLI per aggiungere due colonne nello schema public
all'archivio colonne. L'esempio imposta un flag separato per attivare il motore colonnare, perché l'utilizzo del comando gcloud alloydb instance update
per impostare qualsiasi flag di database deve impostare anche tutti gli altri flag di database per i quali vuoi valori non predefiniti, anche se sono già impostati.
gcloud alloydb instances update INSTANCE_NAME \
--database-flags=^:^\
google_columnar_engine.relations='DATABASE_NAME.public.TABLE_NAME(COLUMN_1,COLUMN_2)'\
:google_columnar_engine.enabled=on\
[:FLAG_3=VALUE_3 ...] \
--region=REGION_ID \
--cluster=CLUSTER_ID
Eliminare colonne utilizzando i flag
Per eliminare le colonne dallo column store, imposta un nuovo valore per il
flag google_columnar_engine.relations
descritto nella sezione precedente,
omettendo le colonne che vuoi eliminare.
Per eliminare tutte le colonne dallo column store, rimuovi il
flag google_columnar_engine.relations
dall'istanza.
Per saperne di più sull'impostazione dei flag di database su un'istanza, consulta la sezione Configurare i flag di database di un'istanza.
Gestire i contenuti del column store utilizzando le funzioni SQL
Puoi gestire manualmente i contenuti dello column store utilizzando le funzioni SQL.
Aggiungere colonne utilizzando le funzioni SQL
Esegui la funzione SQL google_columnar_engine_add
per aggiungere colonne
al column store.
Questo metodo aggiunge le colonne specificate all'archivio colonne e gestisce le colonne solo nel nodo connesso. Le nuove colonne non vengono mantenute all'interno dello store durante i riavvii dell'istanza.
Questo metodo non modifica il flag del database
google_columnar_engine.relations
. L'inserimento
automatico delle colonne
non prende in considerazione le colonne aggiunte da questa funzione SQL.
Client psql
SELECT google_columnar_engine_add( relation => 'TABLE_NAME', columns => 'COLUMN_LIST' );
-
Sostituisci quanto segue:
- "TABLE_NAME": una stringa contenente il nome della tabella o della
vista materializzata. Se la tabella o la visualizzazione si trova in uno schema diverso da
public
, specifica il nome dello schema, un punto e il nome della tabella o della visualizzazione; ad esempio,'myschema.mytable'
. - "COLUMN_LIST": una stringa contenente un elenco separato da virgole e sensibile alle maiuscole e minuscole dei nomi delle colonne che vuoi aggiungere. Se vuoi aggiungere tutte le colonne della tabella o della vista materializzata all'archivio colonne, ometti questo parametro.
Eliminare colonne utilizzando le funzioni SQL
Esegui la funzione SQL google_columnar_engine_drop
come segue:
Client psql
SELECT google_columnar_engine_drop( relation => 'TABLE_NAME', columns => 'COLUMN_LIST' );
- "TABLE_NAME": una stringa contenente il nome della tabella o della
vista materializzata. Se la tabella o la visualizzazione si trova in uno schema diverso da
public
, specifica il nome dello schema, un punto e il nome della tabella o della visualizzazione; ad esempio,'myschema.mytable'
. - "COLUMN_LIST": una stringa contenente un elenco separato da virgole e sensibile alle maiuscole e minuscole dei nomi delle colonne che vuoi aggiungere. Se vuoi aggiungere tutte le colonne della tabella o della vista materializzata all'archivio colonne, ometti questo parametro.
Puoi utilizzare la funzione google_columnar_engine_drop
per rimuovere le colonne aggiunte
modificando il flag del database google_columnar_engine.relations
. Tuttavia, quando
lo fai, queste colonne vengono aggiunte nuovamente all'archivio colonnare al riavvio dell'istanza.