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 a
Google Cloud CLI e a CLI do
cbt
para criar três 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
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
Depois que a gcloud CLI é inicializada, ela precisa ser atualizada e os componentes necessários instalados:
gcloud components update gcloud components install cbt
-
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ãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor 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_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Cloud Bigtable e Cloud Bigtable Admin:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init -
Depois que a gcloud CLI é inicializada, ela precisa ser atualizada e os componentes necessários instalados:
gcloud components update gcloud components install cbt
-
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ãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Crie um projeto do Google Cloud :
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor 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_IDpelo nome do projeto do Google Cloud .
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
Ative as APIs Cloud Bigtable e Cloud Bigtable Admin:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Execute os seguintes comandos para garantir que a CLI gcloud esteja atualizada e inclua a CLI
cbt:gcloud components updategcloud components install cbt
Criar uma instância do Bigtable
Use o comando
bigtable instances createpara 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
Configure a CLI
cbtpara usar o projeto e a instância criando um arquivo.cbtrc.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrcSubstitua PROJECT_ID pelo ID do projeto que você está usando.
Verifique se você configurou o arquivo
.cbtrccorretamente.cat ~/.cbtrcO 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
cbtcom sua instância.
Criar uma tabela com grupos de colunas agregadas
Use o comando
cbt createtablepara criar uma tabela chamadacounters_quickstart_tablecom 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 tipoMaxcom um tipo de entradaInteger. - O grupo de colunas
min_familyé do tipoMincom um tipo de entradaInteger. - O grupo de colunas
sum_familyé do tipoSumcom um tipo de entradaInteger.
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax- O grupo de colunas
Liste os grupos de colunas executando o comando
cbt ls.cbt ls counters_quickstart_tableO 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
Use o comando
cbt addtocellpara gravar um valor inicial de5em uma nova coluna em cada um dos três grupos de colunas, usando uma chave de linha derow-key1e um timestamp de0. 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
Para conferir os valores do contador como números inteiros em vez de bytes, defina um arquivo
yamlque a CLIcbtpossa 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.yamlVerifique se você configurou o arquivo
cbtformat.yamlcorretamente.cat ~/cbtformat.yamlO 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: INT64Use o comando
cbt readpara transmitir o arquivoyamle 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.yamlO 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
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@0Use o comando
cbt readnovamente para ler os dados na tabela. Cada célula agora contém um valor agregado.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yamlO
sum_columncontém a soma de 5 e 3 (8), omin_columncontém o mínimo dos dois valores gravados nele (3), e omax_columnconté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 8Opcional: consulte a tabela no console Google Cloud com SQL.
No console do Google Cloud , abra a página Instâncias do Bigtable.
Selecione
counters-quickstart-instancena lista.No menu de navegação, clique em Bigtable Studio.
Clique na guia Editor.
Cole esta consulta no editor:
SELECT * FROM `counters_quickstart_table`Clique em Executar. Os resultados da consulta são mostrados na tabela Resultados 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 conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud e os recursos.
No terminal, exclua a tabela
counters_quickstart_table:cbt deletetable counters_quickstart_tableExclua a instância:
cbt deleteinstance counters-quickstart-instanceExclua o arquivo
.cbtrc:rm ~/.cbtrcExclua o arquivo de formatação:
rm ~/cbtformat.yamlOpcional: revogar credenciais da CLI gcloud:
gcloud auth revoke