Creare e aggiornare i contatori in Bigtable
Scopri come creare e aggiornare i contatori in Bigtable utilizzando gli aggregati,
celle della tabella che aggregano i valori al momento della scrittura. Questa guida rapida utilizza Google Cloud CLI e l'interfaccia a riga di comando cbt
per creare tre contatori:
- Un contatore che tiene traccia di una somma parziale
- Un contatore che tiene traccia del minimo di tutti i valori aggiunti
- Un contatore che tiene traccia del massimo di tutti i valori aggiunti
Prima di iniziare
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install cbt
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install cbt
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Esegui i seguenti comandi per assicurarti che gcloud CLI sia aggiornata e includa l'interfaccia a riga di comando
cbt
:gcloud components update
gcloud components install cbt
Crea un'istanza Bigtable
Utilizza il comando
bigtable instances create
per creare un'istanza.gcloud bigtable instances create counters-quickstart-instance \ --display-name="Counters quickstart instance" \ --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
Connettiti all'istanza
Configura l'interfaccia a riga di comando
cbt
in modo da utilizzare il tuo progetto e la tua istanza creando un file.cbtrc
.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
Sostituisci PROJECT_ID con l'ID del progetto che stai utilizzando.
Verifica di aver configurato correttamente il file
.cbtrc
.cat ~/.cbtrc
Il terminale mostra i contenuti del file
.cbtrc
, che hanno un aspetto simile al seguente:project = PROJECT_ID instance = counters-quickstart-instance
Ora puoi utilizzare l'
cbt
CLI con la tua istanza.
Crea una tabella con famiglie di colonne aggregate
Utilizza il comando
cbt createtable
per creare una tabella denominatacounters_quickstart_table
con tre famiglie di colonne aggregate. Configura ogni famiglia di colonne con un tipo di aggregazione diverso:- La famiglia di colonne
max_family
è di tipoMax
con un tipo di inputInteger
. - La famiglia di colonne
min_family
è di tipoMin
con un tipo di inputInteger
. - La famiglia di colonne
sum_family
è di tipoSum
con un tipo di inputInteger
.
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
- La famiglia di colonne
Elenca le famiglie di colonne eseguendo il comando
cbt ls
.cbt ls counters_quickstart_table
La shell mostra un output simile al seguente:
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>
Crea contatori nella tabella
Utilizza il comando
cbt addtocell
per scrivere un valore iniziale di5
in una nuova colonna di ciascuna delle tre famiglie di colonne, utilizzando una chiave di riga dirow-key1
e un timestamp di0
. Questa operazione crea celle aggregate, che utilizzi come contatori.cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=5@0 cbt addtocell counters_quickstart_table row-key1 min_family:min_column=5@0 cbt addtocell counters_quickstart_table row-key1 max_family:max_column=5@0
Leggere i dati
Per visualizzare i valori dei contatori come numeri interi anziché byte, definisci un file
yaml
che l'interfaccia a riga di comandocbt
può utilizzare per formattare l'output. Esegui questo comando:echo "families:" > cbtformat.yaml echo " max_family:" >> cbtformat.yaml echo " default_encoding: BigEndian" >> cbtformat.yaml echo " default_type: INT64" >> cbtformat.yaml echo " min_family:" >> cbtformat.yaml echo " default_encoding: BigEndian" >> cbtformat.yaml echo " default_type: INT64" >> cbtformat.yaml echo " sum_family:" >> cbtformat.yaml echo " default_encoding: BigEndian" >> cbtformat.yaml echo " default_type: INT64" >> cbtformat.yaml
Verifica di aver configurato correttamente il file
cbtformat.yaml
.cat ~/cbtformat.yaml
Il terminale mostra i contenuti del file
cbtformat.yaml
, che hanno un aspetto simile al seguente:families: max_family: default_encoding: BigEndian default_type: INT64 min_family: default_encoding: BigEndian default_type: INT64 sum_family: default_encoding: BigEndian default_type: INT64
Utilizza il comando
cbt read
per passare il fileyaml
e leggere i dati che hai aggiunto alla tabella. La tabella ora ha tre colonne, ognuna con un tipo di aggregazione diverso.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
La shell mostra un output simile al seguente. I valori sono formattati come numeri interi e i timestamp sono nel formato UTC.
row-key1 max_family:max_column @ 1970/01/01-00:00:00.000000 5 min_family:min_column @ 1970/01/01-00:00:00.000000 5 sum_family:sum_column @ 1970/01/01-00:00:00.000000 5
Aggiorna i contatori
Aggiungi il valore 3 a ogni colonna della tabella, utilizzando gli stessi timestamp che hai utilizzato quando hai creato le celle. In ogni colonna, il valore della cella viene unito al valore esistente in base al tipo di aggregazione della cella.
cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=3@0 cbt addtocell counters_quickstart_table row-key1 min_family:min_column=3@0 cbt addtocell counters_quickstart_table row-key1 max_family:max_column=3@0
Utilizza di nuovo il comando
cbt read
per leggere i dati nella tabella. Ogni cella ora contiene un valore aggregato.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
sum_column
contiene la somma di 5 e 3 (8),min_column
contiene il minimo dei due valori scritti (3) emax_column
contiene il massimo dei due valori scritti (5).row-key1 max_family:max_column @ 1970/01/01-00:00:00.000000 5 min_family:min_column @ 1970/01/01-00:00:00.000000 3 sum_family:sum_column @ 1970/01/01-00:00:00.000000 8
(Facoltativo) Esegui una query sulla tabella nella console Google Cloud con SQL.
Nella console Google Cloud , apri la pagina Istanze Bigtable.
Seleziona
counters-quickstart-instance
dall'elenco.Nel menu di navigazione, fai clic su Bigtable Studio.
Fai clic sulla scheda Editor.
Incolla questa query nell'editor:
SELECT * FROM `counters_quickstart_table`
Fai clic su Esegui. I risultati della query vengono visualizzati nella tabella Risultati e sono simili ai seguenti:
_key max_family min_family sum_family row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 8 }
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.
Nel terminale, elimina la tabella
counters_quickstart_table
:cbt deletetable counters_quickstart_table
Elimina l'istanza:
cbt deleteinstance counters-quickstart-instance
Elimina il file
.cbtrc
:rm ~/.cbtrc
Elimina il file di formattazione:
rm ~/cbtformat.yaml
(Facoltativo) Revoca le credenziali da gcloud CLI:
gcloud auth revoke