Creare e aggiornare i contatori in Bigtable

Scopri come creare e aggiornare i contatori in Bigtable utilizzando gli aggregati, le celle di 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 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. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Update and install gcloud components:

    gcloud components update
    gcloud components install cbt
  5. 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.

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Update and install gcloud components:

    gcloud components update
    gcloud components install cbt
  11. 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.

  12. Make sure that billing is enabled for your Google Cloud project.

  13. Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  14. Esegui i seguenti comandi per assicurarti che gcloud CLI sia aggiornato e includa l'interfaccia a riga di comando cbt:
    gcloud components update
    gcloud components install cbt

Crea un'istanza Bigtable

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

  1. Configura l'interfaccia a riga di comando cbt in modo da utilizzare il progetto e l'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 ha un aspetto simile al seguente:

    project = PROJECT_ID
    instance = counters-quickstart-instance

    Ora puoi utilizzare l'cbt CLI con la tua istanza.

Creare una tabella con famiglie di colonne aggregate

  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 Integer.
    • La famiglia di colonne min_family è di tipo Min con un tipo di input Integer.
    • La famiglia di colonne sum_family è di tipo Sum con un tipo di input Integer.
    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>
    

Creare contatori nella tabella

  1. Utilizza il comando cbt addtocell per scrivere un valore iniziale di 5 in una nuova colonna in 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 vengono utilizzate 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

  1. Per visualizzare i valori del contatore come numeri interi anziché in byte, definisci un yaml file che l'cbt CLI possa 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 ha 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
    
  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, ciascuna 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 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
    

Aggiorna i contatori

  1. Aggiungi un valore pari a 3 a ogni colonna della tabella, utilizzando gli stesse timestamp che hai utilizzato per creare 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. Ora ogni cella 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 al suo interno (3) e max_column contiene il massimo dei due valori scritti al suo interno (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
    
  3. (Facoltativo) Esegui una 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 al seguente:

    _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 su questa pagina, elimina il progetto Google Cloud con le risorse.

  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 dalla gcloud CLI:

    gcloud auth revoke
    

Passaggi successivi