Gestire manualmente i contenuti della colonna del negozio

Questa pagina descrive come gestire i contenuti del colonnario dell'engine colonnare aggiungendo e rimuovendo manualmente le colonne.

In base al tuo carico di lavoro, puoi aggiungere manualmente colonne al magazzino delle colonne o eliminare alcune o tutte le colonne di una tabella o di una vista materializzata dal magazzino delle 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 magazzino delle colonne, tieni conto sia delle dimensioni del magazzino delle colonne sia della forma del carico di lavoro. Buoni candidati per la selezione sono tabelle o viste di grandi dimensioni sottoposte a scansione 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 magazzino delle colonne e potenzialmente eliminarli, eliminando così il costo in termini di prestazioni associato alla loro manutenzione sull' istanza principale.

Utilizza uno dei seguenti metodi per gestire i contenuti del colonnaio del motore colonnare:

Consulta Quali dati puoi aggiungere al colonna per informazioni sui tipi di dati e sulle origini dati che puoi utilizzare per aggiungere tabelle, colonne e viste materializzate al colonna.

Prima di iniziare

  • Devi disporre di uno di questi ruoli IAM nel progetto Google Cloud che utilizzi:
    • 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.

Gestire i contenuti dello spazio colonne aggiornando i flag del database

Puoi gestire manualmente i contenuti del magazzino delle colonne aggiornando il flag del database google_columnar_engine.relations. L'indicatore ha un singolo valore che specifica tutte le origini dati del tuo archivio colonne. Durante il riavvio, le colonne specificate in questo flag vengono compilate automaticamente nel colonna store.

Puoi utilizzare questo flag insieme all'autocolonizzazione. Se il motore colonnare ha memoria disponibile dopo aver compilato le colonne specificate tramite il flag google_columnar_engine.relations, la colonnarizzazione automatica aggiunge altre colonne al magazzino delle colonne, se necessario.

Per ulteriori informazioni sull'impostazione dei flag del database di un'istanza utilizzando Google Cloud CLI o la console Google Cloud , consulta Configurare i flag del database di un'istanza.

Aggiungere colonne utilizzando i flag

Per aggiungere colonne al repository delle colonne, definisci il flag google_columnar_engine.relations di un'istanza. Imposta il valore su un elenco di voci separate da virgole, con ogni voce che specifica un elenco di colonne da includere da una tabella specifica, in questo formato:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)

Sostituisci quanto segue:

  • DATABASE_NAME: il database contenente le colonne da aggiungere al magazzino delle colonne.

  • SCHEMA_NAME: lo schema che identifica le tabelle o le viste materializzate da aggiungere al magazzino delle colonne, ad esempio public.

  • TABLE_NAME: la tabella o la vista materializzata contenente le colonne da aggiungere al magazzino delle colonne.

  • COLUMN_LIST: un elenco separato da virgole delle colonne da aggiungere al magazzino delle colonne.

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 ulteriori informazioni sull'impostazione dei flag di database in 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 impostati. Questo perché l'elenco delle colonne è separato da virgole, quindi devi utilizzare un carattere diverso dalla virgola per specificare i flag nello stesso argomento della riga di comando.

L'esempio seguente mostra come utilizzare l'interfaccia alla gcloud CLI per aggiungere due colonne nello schema public all'archivio delle colonne. L'esempio imposta un flag distinto per attivare il motore colonnare, perché l'utilizzo del comando gcloud alloydb instance update per impostare qualsiasi flag del database deve impostare anche tutti gli altri flag del database per i quali vuoi avere 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 le colonne utilizzando i flag

Per eliminare le colonne dall'archivio delle colonne, imposta un nuovo valore per il flag google_columnar_engine.relations descritto nella sezione precedente, escludendo le colonne che vuoi eliminare.

Per eliminare tutte le colonne dall'archivio colonne, disattiva il flag google_columnar_engine.relations nell'istanza.

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

Gestire i contenuti del magazzino delle colonne utilizzando le funzioni SQL

Puoi gestire manualmente i contenuti del magazzino delle colonne utilizzando le funzioni SQL.

Aggiungere colonne utilizzando le funzioni SQL

Esegui la funzione SQL google_columnar_engine_add per aggiungere colonne al magazzino delle colonne.

Questo metodo aggiunge le colonne specificate al magazzino delle colonne e gestisce le colonne solo nel nodo collegato. Le nuove colonne non rimangono nel negozio dopo i riavvii dell'istanza.

Questo metodo non modifica il flag del database google_columnar_engine.relations. La colonizzazione automatica 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, sensibile alle maiuscole, dei nomi delle colonne da aggiungere. Se vuoi aggiungere tutte le colonne della tabella o della vista materializzata al magazzino delle 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'
);
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, sensibile alle maiuscole, dei nomi delle colonne da aggiungere. Se vuoi aggiungere tutte le colonne della tabella o della vista materializzata al magazzino delle 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, se lo fai, queste colonne verranno aggiunte di nuovo al magazzino colonnare al riavvio dell'istanza.