Creazione e gestione delle tabelle
Questa pagina spiega come creare ed eseguire operazioni sulle tabelle Bigtable utilizzando la console Google Cloud , Google Cloud CLI o la CLIcbt
.
L'interfaccia a riga di comando cbt
supporta diversi comandi non descritti in questa pagina. Per un elenco completo dei comandi, consulta la documentazione di riferimento di cbt
.
Puoi anche creare e gestire tabelle in modo programmatico con le librerie client o le API di servizio di Cloud Bigtable.
Per istruzioni sulla creazione e la gestione di viste autorizzate di una tabella, consulta Viste autorizzate.
Prima di iniziare
Se prevedi di lavorare con le tabelle utilizzando strumenti a riga di comando, segui i passaggi in questa sezione.
Installa gcloud CLI.
(Facoltativo) Se prevedi di utilizzare la CLI
cbt
, segui le istruzioni riportate in Installazione della CLIcbt
, 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 comandocbt
.
Creare una tabella
Quando crei una tabella, non devi 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:
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
Fai clic su Tabelle nel riquadro a sinistra.
La pagina Tabelle mostra un elenco di tabelle nell'istanza.
Inserisci un ID tabella per la tabella.
(Facoltativo) Aggiungi famiglie di colonne.
Puoi aggiungere colonne ora o in un secondo momento. Una tabella deve avere almeno una famiglia di colonne prima di poter scriverci dati. Una tabella deve avere almeno una famiglia di colonne prima di poter scriverci dati o leggerne uno stream di modifiche.
(Facoltativo) Abilita un flusso di modifiche per la tabella. Prima di attivare uno stream di modifiche, assicurati di comprendere le implicazioni, inclusi l'aumento dei costi di archiviazione e i requisiti di utilizzo del profilo dell'app. Per esaminare questi dettagli, vedi la Panoramica degli stream di modifiche.
Seleziona Abilita flusso di modifiche.
Nel campo Tempo di scadenza, inserisci un numero compreso tra 1 e 7 per specificare il numero di giorni per cui devono essere conservati i dati dello stream di modifiche.
Fai clic su Crea.
(Facoltativo) Se non vuoi che Bigtable crei un backup giornaliero della tabella, deseleziona la casella di controllo accanto a Attiva backup automatico. Per saperne di più, consulta la sezione Utilizzare il backup automatico.
Fai clic su Crea una tabella.
gcloud
Per creare una tabella, esegui questo comando. Consulta gcloud bigtable instances tables 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'ID dell'istanza
- PROJECT_ID: il progetto che conterrà la nuova tabella
- COLUMN-FAMILIES: un elenco separato da virgole di nomi di famiglia di colonne. Puoi aggiungere altre famiglie di colonne in un secondo momento.
Facoltativamente,
Per proteggere la tabella dall'eliminazione, aggiungi al comando
--deletion-protection
. Se non applichi questa impostazione, la tabella può essere eliminata. Puoi anche consentire esplicitamente l'eliminazione della tabella aggiungendo--no-deletion-protection
.Per attivare uno stream di modifiche per la tabella, specifica un periodo di conservazione per i dati dello stream di modifiche. Prima di attivare uno stream di modifiche, assicurati di comprendere le implicazioni, inclusi i maggiori costi di archiviazione e i requisiti di utilizzo del profilo dell'app. Per esaminare questi dettagli, consulta la Panoramica dei flussi di modifiche.
--change-stream-retention-period=RETENTION_PERIOD
Sostituisci RETENTION_PERIOD con il periodo di tempo per il quale Bigtable deve conservare i dati del flusso di modifiche per la tabella. Il tempo deve essere compreso tra uno e sette giorni. Le unità accettabili sono giorni (d), ore (h), minuti (m) e secondi (s). Esempi:
48h
o6d
Per consentire a Bigtable di creare un backup giornaliero della tabella e conservare ogni backup per il periodo di conservazione predefinito di sette giorni, utilizza il flag
--enable-automated-backup
quando crei la tabella.gcloud bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --column-families=COLUMN-FAMILIES \ --enable-automated-backup
Per configurare un periodo di conservazione diverso, utilizza il flag
--automated-backup-retention-period
anziché il flag--enable-automated-backup
e fornisci un valore fino a 90 giorni, espresso come numero con un'unità dim
,h
od
(minuti, ore o giorni), ad esempio15d
per 15 giorni.
cbt
Utilizza il seguente comando, sostituendo TABLE_NAME
con il nome della tabella. Non puoi utilizzare la CLI cbt
per creare una tabella con uno stream di modifiche abilitato.
cbt createtable TABLE_ID
(Facoltativo) Per creare una famiglia di colonne
aggregate nella tabella,
aggiungi il tipo di aggregazione al nome della famiglia di colonne. Il seguente
crea una famiglia di colonne aggregate con una norma
di garbage collection di never
.
cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE
Sostituisci quanto segue:
- TABLE_ID: un ID univoco per la nuova tabella
- FAMILY_NAME: : un elenco separato da virgole di nomi di famiglia di colonne. Puoi aggiungere altre famiglie di colonne in un secondo momento.
- TYPE: il tipo di aggregazione. Deve essere
intsum
,intmin
,intmax
ointhll
.
Per altre opzioni, consulta Creare una
tabella nella guida di riferimento
cbt
CLI.
Se hai eliminato una tabella per errore, non tentare di crearla manualmente. Utilizza il comando gcloud CLI bigtable instances tables undelete
per recuperare la tabella.
(Facoltativo) Dividi la tabella per chiave di riga
Per ottimizzare le prestazioni, Bigtable suddivide continuamente le tabelle su più nodi, distribuendo uniformemente la quantità di dati archiviati su ciascun nodo e mantenendo le righe a cui si accede di frequente il più distanti possibile. Questo processo continuo è automatico.
Quando crei una nuova tabella, puoi specificare le suddivisioni iniziali. Bigtable divide la tabella in base alle chiavi di riga che fornisci. Se gli spazi delle chiavi sono troppo grandi, Bigtable suddivide ulteriormente la tabella. Le divisioni iniziali vengono mantenute per circa 24 ore dopo il completamento della creazione della tabella. Puoi fornire fino a 100 chiavi di riga in cui devono verificarsi le suddivisioni iniziali.
Ad esempio, puoi designare righe specifiche per dividere in anticipo la tabella se stai per scrivere molte righe nella tabella.
La pre-suddivisione della tabella non è essenziale, ma è utile perché fornisce a Bigtable informazioni su dove è probabile che si trovino il carico e l'impronta dei dati quando viene creata la tabella. La pre-suddivisione impedisce a Bigtable di dover suddividere le tabelle e ribilanciare il carico contemporaneamente all'arrivo dei dati.
Console
Non puoi dividere in anticipo le righe quando crei una tabella utilizzando la consoleGoogle Cloud .
gcloud
Per dividere una tabella in base alla chiave di riga, esegui questo comando. Consulta gcloud bigtable instances tables create per un elenco completo delle opzioni.
gcloud bigtable instances tables create TABLE_ID\
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES \
--splits=SPLITS
Sostituisci quanto segue:
- TABLE_ID: un ID univoco per la nuova tabella
- INSTANCE_ID: l'ID dell'istanza
- PROJECT_ID: il progetto che conterrà la nuova tabella
- COLUMN-FAMILIES: un elenco separato da virgole di nomi di famiglia di colonne. Puoi aggiungere altre famiglie di colonne in un secondo momento.
- SPLITS: le chiavi di riga in cui la tabella deve essere inizialmente
divisa, ad esempio
10,20
.
cbt
Per pre-dividere una tabella in base alla chiave di riga, utilizza la seguente sintassi per
creare la tabella. Sostituisci [TABLE_NAME]
con il nome della tabella e [SPLITS]
con un elenco separato da virgole di prefissi di chiavi di riga da utilizzare per le pre-divisioni.
```none
cbt createtable [TABLE_NAME] splits=[SPLITS]
```
Ad esempio, per pre-dividere la tabella my-table
in corrispondenza delle chiavi di riga che iniziano con
10
e 20
:
```none
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 ha protezione da eliminazione abilitata, puoi eliminare le famiglie di colonne nella tabella.
Aggiungere famiglie di colonne
Console
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
Fai clic su Tabelle nel riquadro a sinistra.
La pagina Tabelle mostra un elenco di tabelle nell'istanza.
Fai clic su
Modifica per la tabella che vuoi modificare.Per ogni famiglia di colonne che vuoi aggiungere, completa quanto segue:
- Fai clic su Aggiungi famiglia di colonne.
- Fornisci un identificatore univoco per la famiglia di colonne.
- Imposta la policy di garbage collection per la famiglia di colonne.
- Fai clic su Fine.
- Fai clic su Salva.
gcloud
Non puoi utilizzare gcloud CLI per aggiungere famiglie di colonne a una tabella.
cbt
Per aggiungere una famiglia di colonne a una tabella, utilizza il seguente comando:
cbt createfamily TABLE_ID 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
(Facoltativo) Per aggiungere una famiglia di colonne
aggregate alla tabella,
aggiungi il nome della famiglia di colonne con il tipo di aggregazione. Il seguente
crea una tabella con una famiglia di colonne aggregate con una norma di
garbage collection di never
.
cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE
Sostituisci quanto segue:
- TABLE_ID: l'ID tabella
- FAMILY_NAME: : un elenco separato da virgole di nomi di famiglia di colonne. Puoi aggiungere altre famiglie di colonne in un secondo momento.
- TYPE: il tipo di aggregazione. Deve essere
intsum
,intmin
,intmax
ointhll
.
Elimina famiglie di colonne
Puoi eliminare le famiglie di colonne in una tabella in cui non è abilitata la protezione da eliminazione.
Console
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
Fai clic su Tabelle nel riquadro a sinistra.
La pagina Tabelle mostra un elenco di tabelle nell'istanza.
Fai clic su
Modifica per la tabella che vuoi modificare.Per ogni famiglia di colonne che vuoi eliminare, completa le seguenti operazioni:
- Passa il mouse sopra la riga della famiglia di colonne che vuoi eliminare.
- Fai clic su .
Fai clic su Salva.
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 famiglie di colonne" nel campo di testo.
Fai clic su Conferma.
gcloud
Non puoi utilizzare gcloud CLI per eliminare famiglie di colonne da una tabella.
cbt
Per eliminare una famiglia di colonne da una tabella, utilizza il seguente comando, 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:
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
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 degli approfondimenti di sistema per la tabella.
gcloud
Per visualizzare un elenco di tabelle, esegui il comando gcloud bigtable instances tables list.
gcloud bigtable instances tables list --instances=INSTANCE_IDS
Sostituisci quanto segue:
- INSTANCE_IDS: un elenco separato da virgole di ID istanza.
cbt
Per visualizzare un elenco delle tabelle in un'istanza, esegui questo comando:
cbt ls INSTANCE_ID
Sostituisci quanto segue:
INSTANCE_ID
: L'identificatore permanente per l'istanza.
C++
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Bigtable, consulta la sezione Librerie client Bigtable.
Per eseguire l'autenticazione in Bigtable, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Visualizzare informazioni su una tabella
Console
Per visualizzare informazioni su una tabella:
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
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 di eventuali backup correnti della tabella.
Per visualizzare i nomi famiglia di colonne della tabella, fai clic su
. Per chiudere il riquadro Modifica tabella, fai clic su Annulla.Per visualizzare ulteriori dettagli sulla tabella, incluse le metriche a livello di tabella e lo stato della replica, fai clic sul nome della tabella.
gcloud
Per visualizzare informazioni su una tabella, esegui il comando gcloud bigtable instances tables describe.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
Sostituisci quanto segue:
- TABLE_ID: un ID univoco della tabella
- INSTANCE_ID: l'ID dell'istanza
cbt
Puoi utilizzare l'interfaccia a riga di comando cbt
per ottenere un elenco delle famiglie di colonne esistenti in una tabella.
Utilizza il seguente comando, sostituendo [TABLE_NAME]
con il nome della tabella:
cbt ls [TABLE_NAME]
Imposta le policy di garbage collection
Un criterio di garbage collection indica a Bigtable quali dati conservare e quali contrassegnare per l'eliminazione. Le policy di garbage collection vengono impostate a livello di famiglia di colonne. Puoi impostarli quando crei la tabella o in un secondo momento.
Quando crei una famiglia di colonne, puoi specificare il numero di celle da conservare in ogni colonna della famiglia. Se non specifichi questa impostazione, Bigtable utilizza una delle seguenti impostazioni predefinite:
Se crei la famiglia di colonne con il client Cloud Bigtable HBase per Java o la shell HBase o un altro strumento che utilizza il client HBase per Java, Bigtable conserva solo una cella per ogni intersezione 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 la CLI
cbt
, Bigtable conserva un numero infinito di celle in ogni colonna.
Consulta Configurare le policy di garbage collection per istruzioni dettagliate su come visualizzare, impostare e aggiornare le policy di garbage collection.
Eseguire il backup e ripristinare una tabella
Per istruzioni su come eseguire il backup di una tabella e ripristinarla da un backup in una nuova tabella, vedi Gestire i backup.
Se hai abilitato il backup automatico durante la creazione di una tabella, puoi modificare la configurazione del backup automatico per una tabella per abilitare o disabilitare il backup automatico oppure modificare il periodo di conservazione fino a 90 giorni dalla data di creazione del backup. Per ulteriori informazioni, vedi Utilizzare il backup automatico.
Attivare, disattivare o configurare un flusso di modifiche
Per istruzioni sulle seguenti attività, vedi Configurare uno stream di modifiche.
- Attivazione di uno stream di modifiche su una tabella esistente
- Disattivazione di un flusso di modifiche
- Aggiorna il periodo di conservazione per un flusso di modifiche
Eliminazione di una tabella
L'eliminazione di una tabella comporta anche l'eliminazione di tutte le visualizzazioni autorizzate della tabella. Se in una delle viste autorizzate della tabella è abilitata la protezione da eliminazione, non puoi eliminare la tabella. Inoltre, non puoi eliminare una tabella basata su una vista materializzata continua.
Console
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
Fai clic su Tabelle nel riquadro a sinistra.
La pagina Tabelle mostra un elenco di tabelle nell'istanza.
Fai clic su
per la tabella che vuoi eliminare.Fai clic su Elimina.
Per confermare di essere consapevole che questa azione eliminerà la tabella da tutti i cluster nell'istanza e che hai solo sette giorni di tempo per annullare l'eliminazione della tabella, digita l'ID tabella nella casella Elimina tabella.
Fai clic su Elimina.
gcloud
Per eliminare le tabelle, esegui il comando gcloud bigtable instances tables delete.
gcloud bigtable instances tables delete TABLE_ID --instance=INSTANCE_ID
Sostituisci quanto segue:
- TABLE_ID: l'ID univoco della tabella
- INSTANCE_ID: l'ID dell'istanza
Nel terminale, inserisci
y
per confermare l'eliminazione della tabella.
cbt
Per eliminare una tabella, utilizza il seguente comando, 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 gcloud CLI bigtable instances tables undelete
per annullare l'eliminazione o recuperare la tabella. Non provare a ricreare manualmente la tabella eliminata.
Per ripristinare una tabella, 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'ID dell'istanza
Quando annulli l'eliminazione di una tabella, Bigtable attiva automaticamente la protezione contro l'eliminazione per la tabella.
Si applicano le seguenti limitazioni:
- La possibilità di recuperare una tabella è disponibile per circa sette giorni dall'eliminazione della tabella.
- Non puoi annullare l'eliminazione di una tabella utilizzando la console Google Cloud , le librerie client Cloud Bigtable o la CLI
cbt
. - Non puoi recuperare una tabella da un'istanza eliminata.
- Non puoi recuperare una tabella per cui era abilitata CMEK.
- Quando annulli l'eliminazione di una tabella, Bigtable non ripristina alcun binding dei criteri IAM granulari alla tabella eliminata.
Se vuoi, puoi controllare lo stato dell'operazione undelete
nei
log di controllo.
Modifica protezione da eliminazione
Puoi attivare o disattivare 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 contiene la tabella.
L'abilitazione della protezione da eliminazione per una tabella non la abilita per le viste autorizzate della tabella. Analogamente, la disattivazione della protezione da eliminazione di una tabella non la disattiva per le viste autorizzate della tabella. Devi aggiornare le viste autorizzate della tabella separatamente.
Console
Apri l'elenco delle istanze Bigtable nella console Google Cloud .
Fai clic sull'istanza di cui vuoi visualizzare le tabelle.
Fai clic su Tabelle nel riquadro a sinistra.
La pagina Tabelle mostra un elenco di tabelle nell'istanza.
Fai clic su
accanto all'ID tabella.Per abilitare la protezione da eliminazione, fai clic su Impedisci eliminazione. Per disattivare la protezione da eliminazione, fai clic su Attiva eliminazione. Viene visualizzata solo l'opzione valida.
gcloud
Per abilitare la protezione da eliminazione per una tabella, esegui il comando gcloud bigtable instances
table update
:
```sh
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--deletion-protection
```
Per disattivare la protezione da eliminazione per una tabella, esegui questo comando:
```sh
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 ID of the instance
cbt
Non puoi utilizzare la CLI cbt
per abilitare o disabilitare la protezione dall'eliminazione.
Passaggi successivi
- Scopri come importare ed esportare i dati nella tua tabella e dalla tua tabella.