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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Depois de inicializar a CLI gcloud, atualize-a e instale os componentes necessários:
gcloud components update gcloud components install cbt
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Depois de inicializar a CLI gcloud, atualize-a e instale os componentes necessários:
gcloud components update gcloud components install cbt
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com - Execute os seguintes comandos para garantir que a CLI gcloud está atualizada e inclui a CLI
cbt:gcloud components updategcloud components install cbt Use o
bigtable instances createcomando 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"Configure a
cbtCLI para usar o seu projeto e instância criando um ficheiro.cbtrc.echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrcSubstitua PROJECT_ID pelo ID do projeto que está a usar.
Confirme que configurou o ficheiro
.cbtrccorretamente.cat ~/.cbtrcO 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
cbtCLI com a sua instância.Use o comando
cbt createtablepara criar uma tabela denominadacounters_quickstart_tablecom 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 tipoMaxcom um tipo de entrada deInteger. - A família de colunas
min_familyé do tipoMincom um tipo de entrada deInteger. - A família de colunas
sum_familyé do tipoSumcom um tipo de entrada deInteger.
cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax- A família de colunas
Liste as suas famílias de colunas executando o comando
cbt ls.cbt ls counters_quickstart_tableA shell apresenta um resultado semelhante ao seguinte:
Family Name GC Policy ----------- --------- max_family <never> min_family <never> sum_family <never>Use o comando
cbt addtocellpara escrever um valor inicial de5numa nova coluna em cada uma das três famílias de colunas, usando uma chave de linha derow-key1e uma data/hora de0. 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@0Para ver os valores do contador como números inteiros em vez de bytes, defina um
yamlficheiro que a CLIcbtpossa 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.yamlConfirme que configurou o ficheiro
cbtformat.yamlcorretamente.cat ~/cbtformat.yamlO 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: INT64Use o comando
cbt readpara transmitir o ficheiroyamle 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.yamlA 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 5Adicione 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@0Use novamente o comando
cbt readpara ler os dados na tabela. Cada célula contém agora um valor agregado.cbt read counters_quickstart_table format-file=$HOME/cbtformat.yamlO elemento
sum_columncontém a soma de 5 e 3 (8), o elementomin_columncontém o mínimo dos dois valores que foram escritos nele (3) e o elementomax_columnconté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 8Opcional: consulte a tabela na Google Cloud consola com SQL.
Na Google Cloud consola, abra a página Instâncias do Bigtable.
Selecione
counters-quickstart-instancena lista.No menu de navegação, clique em Bigtable Studio.
Clique no separador Editor.
Cole esta consulta no editor:
SELECT * FROM `counters_quickstart_table`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 } No terminal, elimine a tabela
counters_quickstart_table:cbt deletetable counters_quickstart_tableElimine a instância:
cbt deleteinstance counters-quickstart-instanceElimine o ficheiro
.cbtrc:rm ~/.cbtrcElimine o ficheiro de formatação:
rm ~/cbtformat.yamlOpcional: revogue as credenciais da CLI gcloud:
gcloud auth revoke
Crie uma instância do Bigtable
Associe-se à sua instância
Crie uma tabela com famílias de colunas agregadas
Crie contadores na tabela
Leia os dados
Atualize os contadores
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.