Creare e aggiornare i contatori in Bigtable
Scopri come creare e aggiornare i contatori in Bigtable utilizzando gli aggregati,
ovvero le celle della tabella che aggregano i valori al momento della scrittura. Questa guida rapida utilizza
Google Cloud CLI e
cbt CLI
per creare tre contatori:
- Un contatore che mantiene una somma in esecuzione
- 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
-
Accedi al tuo Account Google.
Se non ne hai già uno, registrati per un nuovo account.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Dopo aver inizializzato gcloud CLI, aggiornala e installa i componenti richiesti:
gcloud components update gcloud components install cbt
-
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'resourcemanager.projects.createautorizzazione. Scopri come concedere i ruoli.
-
Crea un Google Cloud progetto:
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il Google Cloud progetto che stai creando. -
Seleziona il Google Cloud progetto che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del Google Cloud progetto.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Abilita le API Cloud Bigtable API e Cloud Bigtable Admin API:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Dopo aver inizializzato gcloud CLI, aggiornala e installa i componenti richiesti:
gcloud components update gcloud components install cbt
-
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'resourcemanager.projects.createautorizzazione. Scopri come concedere i ruoli.
-
Crea un Google Cloud progetto:
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il Google Cloud progetto che stai creando. -
Seleziona il Google Cloud progetto che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del Google Cloud progetto.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
Abilita le API Cloud Bigtable API e Cloud Bigtable Admin API:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Esegui i seguenti comandi per assicurarti che gcloud CLI sia aggiornata e includa la CLI
cbt:gcloud components updategcloud components install cbt
Creare un'istanza Bigtable
Utilizza il
bigtable instances createcomando 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
cbtCLI per utilizzare il tuo progetto e istanza creando un file.cbtrc.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrcSostituisci PROJECT_ID con l'ID del progetto che stai utilizzando.
Verifica di aver configurato correttamente il file
.cbtrc.cat ~/.cbtrcIl terminale mostra i contenuti del file
.cbtrc, che è simile al seguente:project = PROJECT_ID instance = counters-quickstart-instance
Ora puoi utilizzare
cbtCLI con la tua istanza.
Creare una tabella con famiglie di colonne aggregate
Utilizza il
cbt createtablecomando per creare una tabella denominatacounters_quickstart_tablecon tre famiglie di colonne aggregate. Configura ogni famiglia di colonne con un tipo di aggregazione diverso:- La famiglia di colonne
max_familyè di tipoMaxcon un tipo di inputInteger. - La famiglia di colonne
min_familyè di tipoMincon un tipo di inputInteger. - La famiglia di colonne
sum_familyè di tipoSumcon 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
cbt lscomando.cbt ls counters_quickstart_tableLa shell mostra un output simile al seguente:
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>
Creare contatori nella tabella
Utilizza il
cbt addtocellcomando per scrivere un valore iniziale di5in una nuova colonna in ciascuna delle tre famiglie di colonne, utilizzando una chiave di rigarow-key1e 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
yamlfile checbtCLI 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.yamlVerifica di aver configurato correttamente il file
cbtformat.yaml.cat ~/cbtformat.yamlIl terminale mostra i contenuti del file
cbtformat.yaml, che è 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: INT64Utilizza il
cbt readcomando per passare ilyamlfile 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.yamlLa shell mostra un output simile al seguente. I valori sono formattati come numeri interi e i timestamp sono in 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
Aggiornare i contatori
Aggiungi un valore di 3 a ogni colonna della tabella, utilizzando gli stessi timestamp utilizzati 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@0Utilizza di nuovo il comando
cbt readper leggere i dati nella tabella. Ogni cella ora contiene un valore aggregato.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yamlsum_columncontiene la somma di 5 e 3 (8),min_columncontiene il minimo dei due valori scritti (3) emax_columncontiene 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 Google Cloud console con SQL.
Nella Google Cloud console, apri la pagina Istanze Bigtable.
Seleziona
counters-quickstart-instancedall'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 }
Libera spazio
Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il Google Cloud progetto con le risorse.
Nel terminale, elimina la tabella
counters_quickstart_table:cbt deletetable counters_quickstart_tableElimina l'istanza:
cbt deleteinstance counters-quickstart-instanceElimina il file
.cbtrc:rm ~/.cbtrcElimina il file di formattazione:
rm ~/cbtformat.yaml(Facoltativo) Revoca le credenziali da gcloud CLI:
gcloud auth revoke