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 la consoleGoogle Cloud , Google Cloud CLI o la CLIcbt per creare i seguenti 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

  1. Installa Google Cloud CLI.

  2. Configura gcloud CLI per utilizzare la tua identità federata.

    Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Dopo aver inizializzato gcloud CLI, aggiornala e installa i componenti richiesti:

    gcloud components update
    gcloud components install cbt
  5. 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 per il quale ti è stato concesso un ruolo.
    • Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto (roles/resourcemanager.projectCreator), che contiene l'autorizzazione resourcemanager.projects.create. Scopri come concedere i ruoli.
    • Creare un progetto Google Cloud :

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del progetto Google Cloud .

  6. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  7. Abilita le API Cloud Bigtable e Cloud Bigtable Admin:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. 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

Console

  1. Nella console Google Cloud , vai alla pagina Crea istanza.

    Vai a Crea istanza

  2. Nel campo Nome istanza, inserisci Counters quickstart instance.

  3. Nel campo ID istanza, inserisci counters-quickstart-instance.

  4. Fai clic su Continua.

  5. Nella sezione Seleziona la tua versione, seleziona Enterprise.

  6. Fai clic su Continua.

  7. Nella sezione Tipo di archiviazione, seleziona SSD.

  8. Fai clic su Continua.

  9. Nel campo ID cluster, inserisci counters-quickstart-cluster.

  10. Nell'elenco Regione, seleziona us-east1 (Carolina del Sud).

  11. Nell'elenco Zona, seleziona us-east1-c.

  12. Nella sezione di scalabilità dei nodi, seleziona Scalabilità automatica, quindi segui questi passaggi:

    1. Per il numero minimo di nodi, inserisci 1.
    2. Per il numero massimo di nodi, inserisci 3.
  13. Fai clic sul pulsante Crea per creare l'istanza.

gcloud

  1. Utilizza il comando bigtable instances create per creare un'istanza.

    gcloud bigtable instances create counters-quickstart-instance \
        --display-name="Counters quickstart instance" \
        --edition=ENTERPRISE \
        --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
    

Connettiti all'istanza

  1. 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.

  2. 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' cbtinterfaccia a riga di comando di con la tua istanza.

Crea una tabella con famiglie di colonne aggregate

Console

  1. Nel riquadro di navigazione a sinistra della console Google Cloud , fai clic su Tabelle.

  2. Fai clic su Crea tabella.

  3. Nel campo ID tabella, inserisci counters_quickstart_table.

  4. In Famiglie di colonne, per ogni famiglia di colonne che vuoi aggiungere, fai clic su Aggiungi una famiglia di colonne e inserisci le seguenti impostazioni:

    • sum_family:

      1. Nel campo Nome famiglia di colonne, inserisci sum_family.
      2. Nella sezione Tipo di famiglia di colonne, seleziona Aggregato.
      3. Nell'elenco Aggregatore, seleziona Somma.
      4. Nella sezione Imposta policy di garbage collection, seleziona Non eseguire garbage collection.
      5. Fai clic su Fine.
    • min_family:

      1. Nel campo Nome famiglia di colonne, inserisci min_family.
      2. Nella sezione Tipo di famiglia di colonne, seleziona Aggregato.
      3. Nell'elenco Aggregatore, seleziona Min.
      4. Nella sezione Imposta policy di garbage collection, seleziona Non eseguire garbage collection.
      5. Fai clic su Fine.
    • max_family:

      1. Nel campo Nome famiglia di colonne, inserisci max_family.
      2. Nella sezione Tipo di famiglia di colonne, seleziona Aggregato.
      3. Nell'elenco Aggregatore, seleziona Max.
      4. Nella sezione Imposta policy di garbage collection, seleziona Non eseguire garbage collection.
      5. Fai clic su Fine.
  5. Fai clic su Crea.

  6. Per visualizzare le nuove famiglie di colonne e le relative configurazioni aggregate:

    1. Nel menu di navigazione, fai clic su Bigtable Studio.
    2. Nell'albero Esplora oggetti a sinistra, espandi Tabelle, poi counters_quickstart_table e infine Famiglie di colonne.

cbt

  1. Utilizza il comando cbt createtable per creare una tabella denominata counters_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 tipo Max con un tipo di input Int64.
    • La famiglia di colonne min_family è di tipo Min con un tipo di input Int64.
    • La famiglia di colonne sum_family è di tipo Sum con un tipo di input Int64.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. 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

  1. Utilizza il comando cbt addtocell per scrivere un valore iniziale di 5 in una nuova colonna di ciascuna delle tre famiglie di colonne, utilizzando una chiave di riga di row-key1 e un timestamp di 0. 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

Puoi leggere i dati dalla tabella eseguendo una query con SQL nella console Google Cloud o utilizzando la CLIcbt.

Esegui query sulla tabella nella console Google Cloud con SQL

  1. Nella console Google Cloud , apri la pagina Istanze Bigtable.

    Vai all'elenco delle istanze

  2. Seleziona counters-quickstart-instance dall'elenco.

  3. Nel menu di navigazione, fai clic su Bigtable Studio.

  4. Fai clic sulla scheda Editor.

  5. Incolla questa query nell'editor:

    SELECT * FROM `counters_quickstart_table`
    
  6. Fai clic su Esegui. I risultati della query vengono visualizzati nella tabella Risultati e sono simili a quelli riportati di seguito:

    _key max_family min_family sum_family
    row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 5 }

Leggi con l'interfaccia a riga di comando cbt

  1. Per visualizzare i valori dei contatori come numeri interi anziché byte, definisci un file YAML che l'interfaccia a riga di comando cbt 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
    
  2. Verifica di aver configurato correttamente il file cbtformat.yaml.

    cat ~/cbtformat.yaml
    

    Il terminale mostra i contenuti del file cbtformat.yaml, che sono simili ai seguenti:

    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
    
  3. Utilizza il comando cbt read per passare il file YAML 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

  1. Aggiungi un valore di 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
    
  2. 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) e max_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
    

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.

Console

  1. Elimina la tabella counters_quickstart_table:

    1. Nella console Google Cloud , vai alla pagina Istanze Bigtable.

      Vai all'elenco delle istanze

    2. Nell'elenco delle istanze, fai clic su Counters quickstart instance.

    3. Nel riquadro di navigazione a sinistra, fai clic su Tabelle.

    4. Fai clic su accanto a counters_quickstart_table, quindi fai clic su Elimina.

    5. Inserisci counters_quickstart_table per confermare, quindi fai clic su Elimina.

  2. Elimina l'istanza:

    1. Nella console Google Cloud , vai alla pagina Istanze Bigtable.

      Vai all'elenco delle istanze

    2. Fai clic su Counters quickstart instance.

    3. Fai clic su Elimina istanza.

    4. Inserisci counters-quickstart-instance per confermare, quindi fai clic su Elimina.

  3. Nel terminale, elimina i file di configurazione e le credenziali facoltative:

    1. Elimina il file .cbtrc:

      rm ~/.cbtrc
      
    2. Elimina il file di formattazione:

      rm ~/cbtformat.yaml
      
    3. (Facoltativo) Revoca le credenziali da gcloud CLI:

      gcloud auth revoke
      

cbt

  1. Nel terminale, elimina la tabella counters_quickstart_table:

    cbt deletetable counters_quickstart_table
    
  2. Elimina l'istanza:

    cbt deleteinstance counters-quickstart-instance
    
  3. Elimina il file .cbtrc:

    rm ~/.cbtrc
    
  4. Elimina il file di formattazione:

    rm ~/cbtformat.yaml
    
  5. (Facoltativo) Revoca le credenziali da gcloud CLI:

    gcloud auth revoke
    

Passaggi successivi