Criar e atualizar contadores no Bigtable

Aprenda a criar e atualizar contadores no Bigtable usando agregações, células de tabela que agregam valores no momento da gravação. Este guia de início rápido usa o consoleGoogle Cloud , a Google Cloud CLI ou a CLI cbt para criar os seguintes contadores:

  • Um contador que mantém uma soma em execução
  • 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. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se agora.

  2. Instale a CLI do Google Cloud.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

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

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

    gcloud components update
    gcloud components install cbt
  6. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Google Cloud :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto Google Cloud que você está criando.

    • Selecione o projeto Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud .

  7. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  8. Ative as APIs Cloud Bigtable e Cloud Bigtable Admin:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  9. Instale a CLI do Google Cloud.

  10. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

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

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

    gcloud components update
    gcloud components install cbt
  13. Crie ou selecione um Google Cloud projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Google Cloud :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto Google Cloud que você está criando.

    • Selecione o projeto Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud .

  14. Verifique se o faturamento está ativado para o projeto do Google Cloud .

  15. Ative as APIs Cloud Bigtable e Cloud Bigtable Admin:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  16. Execute os seguintes comandos 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

Console

  1. No console do Google Cloud , acesse a página Criar instância.

    Acessar "Criar instância"

  2. No campo Nome da instância, insira Counters quickstart instance.

  3. No campo ID da instância, insira counters-quickstart-instance.

  4. Clique em Continuar.

  5. Na seção Selecione sua edição, escolha Enterprise.

  6. Clique em Continuar.

  7. Na seção Tipo de armazenamento, selecione SSD.

  8. Clique em Continuar.

  9. No campo ID do cluster, insira counters-quickstart-cluster.

  10. Na lista Região, selecione us-east1 (Carolina do Sul).

  11. Na lista Zona, selecione us-east1-c.

  12. Na seção de escalonamento de nós, selecione Escalonamento automático e faça o seguinte:

    1. Para o número mínimo de nós, insira 1.
    2. Para o número máximo de nós, insira 3.
  13. Clique em Criar para criar a instância.

gcloud

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

    gcloud bigtable instances create counters-quickstart-instance \
        --display-name="Counters quickstart instance" \
        --edition=ENTERPRISE \
        --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 grupos de colunas agregadas

Console

  1. No painel de navegação à esquerda do console Google Cloud , clique em Tabelas.

  2. Clique em Criar tabela.

  3. No campo ID da tabela, insira counters_quickstart_table.

  4. Em Grupos de colunas, para cada grupo que você quer adicionar, clique em Adicionar um grupo de colunas e insira as seguintes configurações:

    • sum_family:

      1. No campo Nome do grupo de colunas, insira sum_family.
      2. Na seção Tipo de grupo de colunas, selecione Agregar.
      3. Na lista Agregador, selecione Soma.
      4. Na seção Definir política de coleta de lixo, selecione Nunca coletar lixo.
      5. Clique em Concluído.
    • min_family:

      1. No campo Nome do grupo de colunas, insira min_family.
      2. Na seção Tipo de grupo de colunas, selecione Agregar.
      3. Na lista Agregador, selecione Mínimo.
      4. Na seção Definir política de coleta de lixo, selecione Nunca coletar lixo.
      5. Clique em Concluído.
    • max_family:

      1. No campo Nome do grupo de colunas, insira max_family.
      2. Na seção Tipo de grupo de colunas, selecione Agregar.
      3. Na lista Agregador, selecione Máx..
      4. Na seção Definir política de coleta de lixo, selecione Nunca coletar lixo.
      5. Clique em Concluído.
  5. Clique em Criar.

  6. Para conferir os novos grupos de colunas e as configurações agregadas:

    1. No menu de navegação, clique em Bigtable Studio.
    2. Na árvore Pesquisador de Objetos à esquerda, expanda Tabelas, depois counters_quickstart_table e, em seguida, Famílias de colunas.

cbt

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

    • O grupo de colunas max_family é do tipo Max com um tipo de entrada Int64.
    • O grupo de colunas min_family é do tipo Min com um tipo de entrada Int64.
    • O grupo de colunas sum_family é do tipo Sum com um tipo de entrada Int64.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. Liste os grupos 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 um dos três grupos de colunas, usando uma chave de linha de row-key1 e um timestamp 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

É possível ler os dados da tabela consultando-a com SQL no console Google Cloud ou usando a CLI cbt.

Consultar a tabela no console 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-a no editor:

    SELECT * FROM `counters_quickstart_table`
    
  6. Clique em Executar. Os resultados da consulta aparecem na tabela Resultados e são semelhantes a isto:

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

Ler com a CLI cbt

  1. Para ver 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 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 arquivo YAML e ler os dados que você adicionou à tabela. A tabela agora 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 o valor 3 a cada coluna da 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 atual 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. Cada célula agora 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 gravados nele (3) e o max_column contém o máximo dos dois valores 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
    

Limpar

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

Console

  1. Exclua a tabela counters_quickstart_table:

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

      Acesse a lista de instâncias.

    2. Na lista de instâncias, clique em Instância de início rápido de contadores.

    3. No painel de navegação à esquerda, clique em Tabelas.

    4. Clique em ao lado de counters_quickstart_table e em Excluir.

    5. Digite counters_quickstart_table para confirmar e clique em Excluir.

  2. Exclua a instância:

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

      Acesse a lista de instâncias.

    2. Clique em Instância de início rápido de contadores.

    3. Clique em Excluir instância.

    4. Digite counters-quickstart-instance para confirmar e clique em Excluir.

  3. No terminal, exclua os arquivos de configuração e as credenciais opcionais:

    1. Exclua o arquivo .cbtrc:

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

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

      gcloud auth revoke
      

cbt

  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