Criar e atualizar contadores no Bigtable

Aprenda a criar e atualizar contadores no Bigtable usando agregados, células de tabela que agregam valores no momento da gravação. Este guia de início rápido usa a Google Cloud CLI e a CLI cbt para criar três contadores:

  • Um contador que mantém uma soma em execução
  • Um contador que rastreia o valor mínimo de todos os valores adicionados
  • Um contador que rastreia o valor máximo de todos os valores adicionados

Antes de começar

  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. Execute os comandos a seguir para garantir que a CLI gcloud esteja atualizada e inclua a CLI cbt:
    gcloud components update
    gcloud components install cbt

Criar uma instância do Bigtable

  1. Use o comando bigtable instances create para criar uma instância.

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

conectar-se à instância

  1. Configure a CLI cbt para usar o projeto e a instância criando um arquivo .cbtrc.

    echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
    

    Substitua PROJECT_ID pelo ID do projeto que você está usando.

  2. Verifique se você configurou o arquivo .cbtrc corretamente.

    cat ~/.cbtrc
    

    O terminal exibe o conteúdo do arquivo .cbtrc, que é semelhante ao seguinte:

    project = PROJECT_ID
    instance = counters-quickstart-instance

    Agora, é possível usar a CLI cbt com sua instância.

Criar uma tabela com famílias de colunas agregadas

  1. Use o comando cbt createtable para criar uma tabela chamada counters_quickstart_table com três grupos de colunas agregados. Configure cada grupo de colunas com um tipo de agregação diferente:

    • A família de colunas max_family é do tipo Max com um tipo de entrada de Integer.
    • A família de colunas min_family é do tipo Min com um tipo de entrada de Integer.
    • A família de colunas sum_family é do tipo Sum com um tipo de entrada de Integer.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. Liste as famílias de colunas executando o comando cbt ls.

    cbt ls counters_quickstart_table
    

    O shell vai mostrar uma saída semelhante a esta:

    Family Name     GC Policy
    -----------     ---------
    max_family      <never>
    min_family      <never>
    sum_family      <never>
    

Criar contadores na tabela

  1. Use o comando cbt addtocell para gravar um valor inicial de 5 em uma nova coluna em cada uma das três famílias de colunas, usando uma chave de linha de row-key1 e um carimbo de data/hora de 0. Essa operação cria células agregadas, que você usa como contadores.

    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
    

Ler os dados

  1. Para conferir os valores do contador como números inteiros em vez de bytes, defina um arquivo yaml que a CLI cbt possa usar para formatar a saída. Execute o comando a seguir:

    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. Verifique se você configurou o arquivo cbtformat.yaml corretamente.

    cat ~/cbtformat.yaml
    

    O terminal exibe o conteúdo do arquivo cbtformat.yaml, que é semelhante a este:

    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. Use o comando cbt read para transmitir o arquivo yaml e ler os dados que você adicionou à tabela. Agora, a tabela tem três colunas, cada uma com um tipo de agregação diferente.

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    O shell vai mostrar uma saída semelhante a esta. Os valores são formatados como números inteiros, e os carimbos de data/hora estão no 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
    

Atualizar os contadores

  1. Adicione um valor de 3 a cada coluna na tabela usando os mesmos carimbos de data/hora que você usou ao criar as células. Em cada coluna, o valor da célula é mesclado com o valor existente com base no tipo de agregação da célula.

    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. Use o comando cbt read novamente para ler os dados na tabela. Agora, cada célula contém um valor agregado.

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    O sum_column contém a soma de 5 e 3 (8), o min_column contém o mínimo dos dois valores que foram gravados nele (3) e o max_column contém o máximo dos dois valores que foram gravados nele (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. Opcional: consulte a tabela no console do Google Cloud com SQL.

    1. No console do Google Cloud, abra a página Instâncias do Bigtable.

      Acesse a lista de instâncias

    2. Selecione counters-quickstart-instance na lista.

    3. No menu de navegação, clique em Bigtable Studio.

    4. Clique na guia Editor.

    5. Cole esta consulta no editor:

      SELECT * FROM `counters_quickstart_table`
      
    6. Clique em Executar. Os resultados da consulta são exibidos na tabela Results e são semelhantes a este:

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

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.

  1. No terminal, exclua a tabela counters_quickstart_table:

    cbt deletetable counters_quickstart_table
    
  2. Exclua a instância:

    cbt deleteinstance counters-quickstart-instance
    
  3. Exclua o arquivo .cbtrc:

    rm ~/.cbtrc
    
  4. Exclua o arquivo de formatação:

    rm ~/cbtformat.yaml
    
  5. Opcional: revogar credenciais da CLI gcloud:

    gcloud auth revoke
    

A seguir