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. 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. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

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

    gcloud components update
    gcloud components install cbt
  6. Create or select a Google Cloud 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 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.

  7. Verify that billing is enabled for your Google Cloud project.

  8. 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
  9. Install the Google Cloud CLI.

  10. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

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

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

    gcloud components update
    gcloud components install cbt
  13. Create or select a Google Cloud 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 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.

  14. Verify that billing is enabled for your Google Cloud project.

  15. 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
  16. Execute os seguintes comandos para garantir que a CLI gcloud está atualizada e inclui a CLI cbt:
    gcloud components update
    gcloud components install cbt
  17. 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 Google Cloud consola com SQL.

      1. Na Google Cloud 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 Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud 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?