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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install cbt
-
Create or select a Google Cloud project.
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
gcloud services enable bigtable.googleapis.com
bigtableadmin.googleapis.com -
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
After initializing the gcloud CLI, update it and install the required components:
gcloud components update gcloud components install cbt
-
Create or select a Google Cloud project.
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Bigtable API and Cloud Bigtable Admin API APIs:
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 update
gcloud components install cbt
Criar uma instância do Bigtable
Use o comando
bigtable instances create
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"
conectar-se à instância
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.
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 agregados
Use o comando
cbt createtable
para criar uma tabela chamadacounters_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 tipoMax
com um tipo de entradaInteger
. - O grupo de colunas
min_family
é do tipoMin
com um tipo de entradaInteger
. - O grupo de colunas
sum_family
é do tipoSum
com 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_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
Use o comando
cbt addtocell
para gravar um valor inicial de5
em uma nova coluna em cada um dos três grupos de colunas, usando uma chave de linha derow-key1
e 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
yaml
que a CLIcbt
pode 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
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
Use o comando
cbt read
para transmitir o arquivoyaml
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
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
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), omin_column
contém o mínimo dos dois valores gravados nele (3), e omax_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
Opcional: 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-instance
na 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 sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com os recursos.
No terminal, exclua a tabela
counters_quickstart_table
:cbt deletetable counters_quickstart_table
Exclua a instância:
cbt deleteinstance counters-quickstart-instance
Exclua o arquivo
.cbtrc
:rm ~/.cbtrc
Exclua o arquivo de formatação:
rm ~/cbtformat.yaml
Opcional: revogar credenciais da CLI gcloud:
gcloud auth revoke