Crie e atualize contadores no Bigtable

Saiba como criar e atualizar contadores no Bigtable através de agregados, células de tabelas que agregam valores no momento da escrita. Este início rápido usa a CLI gcloud do Google Cloud e a CLI cbt para criar três contadores:

  • Um contador que mantém uma soma contínua
  • Um contador que acompanha o mínimo de todos os valores adicionados
  • Um contador que acompanha o máximo de todos os valores adicionados

Antes de começar

  1. Install the Google Cloud CLI.

  2. Configure a CLI gcloud para usar a sua identidade federada.

    Para mais informações, consulte o artigo Inicie sessão na CLI gcloud com a sua identidade federada.

  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Depois de inicializar a CLI gcloud, atualize-a e instale os componentes necessários:

    gcloud components update
    gcloud components install cbt
  5. Create or select a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Cloud de Confiance project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Cloud de Confiance project you are creating.

    • Select the Cloud de Confiance project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Cloud de Confiance project name.

  6. Verify that billing is enabled for your Cloud de Confiance project.

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  8. Execute os seguintes comandos para garantir que a CLI gcloud está atualizada e inclui a CLI cbt:
    gcloud components update
    gcloud components install cbt
  9. Crie uma instância do Bigtable

    1. Use o bigtable instances create comando 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"
      

    Associe-se à sua instância

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

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

      Substitua PROJECT_ID pelo ID do projeto que está a usar.

    2. Confirme que configurou o ficheiro .cbtrc corretamente.

      cat ~/.cbtrc
      

      O terminal apresenta o conteúdo do ficheiro .cbtrc, que tem um aspeto semelhante ao seguinte:

      project = PROJECT_ID
      instance = counters-quickstart-instance

      Agora, pode usar a cbt CLI com a sua instância.

    Crie uma tabela com famílias de colunas agregadas

    1. Use o comando cbt createtable para criar uma tabela denominada counters_quickstart_table com três famílias de colunas agregadas. Configure cada família 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 suas famílias de colunas executando o comando cbt ls.

      cbt ls counters_quickstart_table
      

      A shell apresenta um resultado semelhante ao seguinte:

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

    Crie contadores na tabela

    1. Use o comando cbt addtocell para escrever um valor inicial de 5 numa nova coluna em cada uma das três famílias de colunas, usando uma chave de linha de row-key1 e uma data/hora de 0. Esta operação cria células agregadas, que 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
      

    Leia os dados

    1. Para ver os valores do contador como números inteiros em vez de bytes, defina um yamlficheiro que a CLI cbt possa usar para formatar o resultado. Execute o seguinte:

      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. Confirme que configurou o ficheiro cbtformat.yaml corretamente.

      cat ~/cbtformat.yaml
      

      O terminal apresenta o conteúdo do ficheiro cbtformat.yaml, que tem um aspeto semelhante ao seguinte:

      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 ficheiro yaml e ler os dados que adicionou à tabela. A tabela tem agora três colunas, cada uma com um tipo de agregação diferente.

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

      A shell apresenta um resultado semelhante ao seguinte. Os valores estão formatados como números inteiros e as datas/horas 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
      

    Atualize os contadores

    1. Adicione um valor de 3 a cada coluna na tabela, usando as mesmas datas/horas que usou quando criou as células. Em cada coluna, o valor da célula é unido ao 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 novamente o comando cbt read para ler os dados na tabela. Cada célula contém agora um valor agregado.

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

      O elemento sum_column contém a soma de 5 e 3 (8), o elemento min_column contém o mínimo dos dois valores que foram escritos nele (3) e o elemento max_column contém o máximo dos dois valores que foram escritos 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 na Cloud de Confiance consola com SQL.

      1. Na Cloud de Confiance consola, abra a página Instâncias do Bigtable.

        Aceda à lista de instâncias

      2. Selecione counters-quickstart-instance na lista.

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

      4. Clique no separador Editor.

      5. Cole esta consulta no editor:

        SELECT * FROM `counters_quickstart_table`
        
      6. Clique em Executar. Os resultados da consulta são apresentados na tabela Resultados e têm um aspeto semelhante ao seguinte:

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

    Limpar

    Para evitar incorrer em custos na sua Cloud de Confiance conta pelos recursos usados nesta página, elimine o Cloud de Confiance projeto com os recursos.

    1. No terminal, elimine a tabela counters_quickstart_table:

      cbt deletetable counters_quickstart_table
      
    2. Elimine a instância:

      cbt deleteinstance counters-quickstart-instance
      
    3. Elimine o ficheiro .cbtrc:

      rm ~/.cbtrc
      
    4. Elimine o ficheiro de formatação:

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

      gcloud auth revoke
      

    O que se segue?