Creazione e gestione delle tabelle

Questa pagina spiega come creare ed eseguire operazioni sulle tabelle Cloud Bigtable utilizzando la console Google Cloud, Google Cloud CLI o cbt interfaccia a riga di comando.

L'interfaccia a riga di comando cbt supporta diversi comandi non descritti in questa pagina. Consulta il riferimento cbt per un elenco completo dei comandi.

Puoi anche creare e gestire le tabelle in modo programmatico utilizzando le librerie client o le API di servizio Bigtable.

Prima di iniziare

Se prevedi di utilizzare le tabelle tramite strumenti a riga di comando, segui i passaggi riportati in questa sezione.

  1. Installare l'interfaccia a riga di comando gcloud.

  2. Facoltativo: se prevedi di utilizzare l'interfaccia a riga di comando cbt, segui le istruzioni nella sezione Installare l'interfaccia a riga di comando cbt , incluso il passaggio per creare un file .cbtrc.

    Le istruzioni dell'interfaccia a riga di comando cbt in questa pagina presuppongono che tu abbia impostato l'ID progetto e l'ID istanza nel file .cbtrc. In alternativa, puoi utilizzare i flag -project e -instance per impostare questi valori ogni volta che esegui un comando dell'interfaccia a riga di comando cbt.

Creare una tabella

Quando crei una tabella, non è necessario specificare le famiglie di colonne da utilizzare nella tabella. Puoi aggiungere o eliminare famiglie di colonne in un secondo momento.

Console

Per creare una nuova tabella in un'istanza:

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza.

  4. Fai clic su Crea una tabella.

  5. Inserisci un ID tabella per la tabella.

  6. (Facoltativo) Aggiungi famiglie di colonne.

    Puoi aggiungere le colonne ora o in un secondo momento. Una tabella deve avere almeno una famiglia di colonne prima di poter scrivere dati al suo interno.

  7. Fai clic su Crea.

gcloud

Esegui questo comando. Consulta gcloud bigtable instances create per un elenco completo delle opzioni.

gcloud bigtable instances tables create TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families="COLUMN-FAMILIES"

Sostituisci quanto segue:

  • TABLE_ID: un ID univoco per la nuova tabella
  • INSTANCE_ID: l'istanza che conterrà la nuova tabella
  • PROJECT_ID: il progetto che conterrà la nuova tabella
  • COLUMN-FAMILIES: un elenco di nomi di famiglia di colonne separati da virgole. Puoi aggiungere altre famiglie di colonne in un secondo momento.

(Facoltativo)

  • Per proteggere la tabella dall'eliminazione, aggiungi il comando con --deletion-protection. Se non applichi questa impostazione, la tabella può essere eliminata. Puoi anche consentire esplicitamente l'eliminazione della tabella aggiungendo --no-deletion-protection.

cbt

Utilizza il comando seguente, sostituendo [TABLE_NAME] con il nome della tabella:

cbt createtable [TABLE_NAME]

Se hai eliminato una tabella per errore, non tentare di crearla manualmente. Utilizza il comando dell'interfaccia a riga di comando gcloud bigtable instances tables undelete per recuperare la tabella.

Facoltativo: suddividi la tabella per chiave di riga

Una funzionalità di Bigtable come servizio completamente gestito è la suddivisione automatica delle tabelle su più nodi. Questa funzionalità ottimizza le prestazioni distribuendo in modo uniforme la quantità di dati archiviati su ciascun nodo e mantenendo separate le righe a cui si accede di frequente, ove possibile.

Quando crei una tabella utilizzando gcloud CLI, l'interfaccia a riga di comando cbt o una libreria client Bigtable, puoi scegliere le chiavi di riga per dividere la tabella. Ad esempio, puoi contrassegnare righe specifiche per pre-suddividere la tabella se stai per scrivere molte righe nella tabella. Puoi fornire fino a 100 chiavi di riga in cui dovrebbero avvenire le suddivisioni iniziali.

La suddivisione della tabella non è essenziale, ma è utile perché fornisce informazioni su Bigtable in cui è probabile che vengano caricati il carico e l'impronta dei dati quando viene creata la tabella. Il pre-split impedisce a Bigtable di dividere le tabelle e riequilibrare il carico contemporaneamente all'arrivo dei dati.

La tabella non rimane divisa sulle chiavi di riga che scegli per la suddivisione al momento della creazione. Bigtable divide la tua tabella in diverse chiavi di riga, in base alla quantità di dati nella tabella e alla frequenza di accesso a ciascuna riga.

Console

Non puoi pre-suddividere le righe quando crei una tabella utilizzando la console Google Cloud.

cbt

Per dividere una tabella in base alla chiave di riga, utilizza la sintassi seguente per creare la tabella. Sostituisci [TABLE_NAME] con il nome della tabella e [SPLITS] con un elenco separato da virgole di prefissi da utilizzare come righe per le suddivisioni precedenti.

```
cbt createtable [TABLE_NAME] splits=[SPLITS]
```

Ad esempio, per pre-suddividere la tabella my-table nelle chiavi di riga che iniziano con 10 e 20:

```
cbt createtable my-table splits=10,20
```

Modificare le famiglie di colonne in una tabella

Puoi aggiungere famiglie di colonne in una tabella esistente. Se la tabella non è abilitata per la protezione dall'eliminazione, puoi eliminare le famiglie di colonne nella tabella.

Aggiungi famiglie di colonne

Console

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza.

  4. Fai clic su Modifica per la tabella da modificare.

  5. Per ogni famiglia di colonne che vuoi aggiungere, completa la procedura seguente:

    1. Fai clic su Aggiungi famiglia di colonne.
    2. Fornisci un identificatore univoco per la famiglia di colonne.
    3. Imposta il criterio di raccolta dei rifiuti per la famiglia di colonne.
    4. Fai clic su Fine.
    5. Fai clic su Salva.

cbt

Per aggiungere una famiglia di colonne a una tabella, utilizza il comando seguente, sostituendo [TABLE_NAME] con il nome della tabella e [FAMILY_NAME] con il nome della famiglia di colonne:

cbt createfamily [TABLE_NAME] [FAMILY_NAME]

Ad esempio, per aggiungere le famiglie di colonne cf1 e cf2 alla tabella my-table:

cbt createfamily my-table cf1
cbt createfamily my-table cf2

Elimina famiglie di colonne

Puoi eliminare le famiglie di colonne in una tabella per cui non è abilitata la protezione dall'eliminazione.

Console

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza.

  4. Fai clic su Modifica per la tabella da modificare.

  5. Per ogni famiglia di colonne che vuoi eliminare, completa i passaggi seguenti:

    1. Passa il mouse sopra la riga della famiglia di colonne che vuoi eliminare.
    2. Fai clic su .
  6. Fai clic su Salva.

  7. Per confermare di aver compreso che l'eliminazione di una famiglia di colonne è definitiva e che tutti i dati della famiglia di colonne verranno eliminati, digita "Elimina le famiglie di colonne" nella casella di testo.

  8. Fai clic su Conferma.

cbt

Per eliminare una famiglia di colonne da una tabella, utilizza il comando seguente, sostituendo [TABLE_NAME] con il nome della tabella e [FAMILY_NAME] con il nome della famiglia di colonne:

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

Ad esempio, per eliminare la famiglia di colonne cf2 dalla tabella my-table:

cbt deletefamily my-table cf2

Visualizzare un elenco di tabelle

Console

Per visualizzare un elenco di tabelle in un'istanza:

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza.

    • Fai clic sulla freccia accanto all'ID tabella per espandere un elenco di repliche della tabella.
    • Fai clic su Visualizza metriche accanto al nome di una tabella per visualizzare i dati di monitoraggio della tabella.

cbt

Per visualizzare un elenco delle tabelle in un'istanza, esegui il comando seguente:

cbt ls

Visualizzare le informazioni su una tabella

Console

Per visualizzare le informazioni relative a una tabella:

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza. Per ogni tabella, la console Google Cloud mostra il numero di cluster in cui è archiviata la tabella, lo stato della tabella, l'utilizzo dello spazio di archiviazione e gli identificatori per eventuali backup correnti della tabella.

  4. Per visualizzare i nomi famiglia di colonne per la tabella, fai clic su . Per chiudere il riquadro Modifica tabella, fai clic su Annulla.

  5. Per visualizzare ulteriori dettagli sulla tabella, tra cui metriche a livello di tabella e stato di replica, fai clic sul nome della tabella.

cbt

Puoi utilizzare l'interfaccia a riga di comando cbt per ottenere un elenco delle famiglie di colonne esistenti in una tabella.

Utilizza il comando seguente, sostituendo [TABLE_NAME] con il nome della tabella:

cbt ls [TABLE_NAME]

Imposta i criteri per garbage collection

Un criterio di garbage collection indica a Bigtable quali dati conservare e quali contrassegnare per l'eliminazione. I criteri di raccolta dei rifiuti sono impostati a livello di famiglia di colonne. Puoi impostarle al momento della creazione della tabella o in un secondo momento.

Quando crei una famiglia di colonne, puoi specificare il numero di celle che vuoi conservare in ogni colonna di quella famiglia di colonne. Se non specifichi questa impostazione, Bigtable utilizza una delle seguenti impostazioni predefinite:

  • Se crei la famiglia di colonne con il client HBase di Cloud Bigtable per Java o la shell HBase o con un altro strumento che utilizza il client HBase per Java, Bigtable conserva una sola cella per ogni intersezione di riga/colonna nella famiglia di colonne. Questa impostazione predefinita è coerente con HBase.

  • Se crei la famiglia di colonne utilizzando la console Google Cloud, qualsiasi altra libreria client o l'interfaccia a riga di comando di cbt , Bigtable conserva un numero infinito di celle in ogni colonna.

Consulta Configurare i garbage collection rifiuti per istruzioni dettagliate su come visualizzare, impostare e aggiornare i criteri di garbage collection.

Eseguire il backup e il ripristino di una tabella

Consulta Gestire i backup per istruzioni su come eseguire il backup di una tabella e ripristinare i dati da un backup a una nuova tabella.

Eliminazione di una tabella

Console

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza.

  4. Fai clic su per la tabella da eliminare.

  5. Fai clic su Elimina.

  6. Per confermare che accetti l'eliminazione della tabella da tutti i cluster nell'istanza e che hai solo sette giorni per annullare l'eliminazione della tabella, digita l'ID tabella nella casella di testo.

  7. Fai clic su Elimina.

cbt

Per eliminare una tabella, utilizza il comando seguente, sostituendo [TABLE_NAME] con il nome della tabella:

cbt deletetable [TABLE_NAME]

Annullare l'eliminazione di una tabella

Se elimini accidentalmente una tabella, puoi utilizzare il comando dell'interfaccia a riga di comando gcloud CLI bigtable instances tables undelete per annullare l'eliminazione o ripristinare la tabella. Non tentare prima di creare manualmente la tabella eliminata.

Esegui questo comando nel terminale:

gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID

Sostituisci quanto segue:

  • TABLE_ID: l'identificatore univoco della tabella
  • INSTANCE_ID: l'istanza in cui si trova la tabella

Si applicano le seguenti limitazioni:

  • È possibile annullare l'eliminazione di una tabella per circa sette giorni dal momento dell'eliminazione.
  • Non puoi annullare l'eliminazione di una tabella utilizzando la console Google Cloud, le librerie client di Bigtable o l'interfaccia a riga di comando cbt.
  • Non puoi annullare l'eliminazione di una tabella da un'istanza che è stata eliminata.
  • Non puoi annullare l'eliminazione di una tabella con CMEK abilitata.
  • Eventuali associazioni di criteri IAM granulari che una tabella ha prima dell'eliminazione non vengono ripristinate quando viene annullata l'eliminazione della tabella.

Facoltativamente, puoi controllare lo stato dell'operazione undelete nei log di controllo.

Modifica la protezione da eliminazione

Puoi abilitare o disabilitare la protezione da eliminazione per una tabella se sei un'entità in un ruolo che include l'autorizzazione bigtable.tables.update, ad esempio roles/bigtable.admin. La protezione dall'eliminazione impedisce l'eliminazione della tabella, di tutte le famiglie di colonne nella tabella e dell'istanza che la contiene.

Console

  1. Apri l'elenco delle istanze Bigtable nella console Google Cloud.

    Apri l'elenco delle istanze

  2. Fai clic sull'istanza di cui vuoi visualizzare le tabelle.

  3. Fai clic su Tabelle nel riquadro a sinistra.

    La pagina Tabelle mostra un elenco di tabelle nell'istanza.

  4. Fai clic su accanto all'ID tabella.

  5. Per attivare la protezione dall'eliminazione, fai clic su Impedisci l'eliminazione. Per disabilitare la protezione dall'eliminazione, fai clic su Attiva l'eliminazione. Solo l'opzione valida è visibile.

gcloud

Per attivare la protezione da eliminazione per una tabella, esegui il comando gcloud bigtable instances table update:

gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --deletion-protection

Per disabilitare la protezione dall'eliminazione per una tabella, esegui il comando seguente:

gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --no-deletion-protection

Sostituisci quanto segue:

+ `TABLE_ID`: the unique identifier for the table
+ `INSTANCE_ID`: the instance that the table is in

cbt

Non puoi utilizzare l'interfaccia a riga di comando cbt per abilitare o disabilitare la protezione da eliminazione.