Criar e atualizar contadores no Bigtable
Aprenda a criar e atualizar contadores no Bigtable usando agregados,
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 cbt
para criar três contadores:
- Um contador que mantém uma soma em execução
- Um contador que rastreia o valor mínimo de todos os valores adicionados
- Um contador que rastreia o valor 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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
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 comandos a seguir 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 famílias de colunas agregadas
Use o comando
cbt createtable
para criar uma tabela chamadacounters_quickstart_table
com três grupos de colunas agregados. Configure cada grupo de colunas com um tipo de agregação diferente:- A família de colunas
max_family
é do tipoMax
com um tipo de entrada deInteger
. - A família de colunas
min_family
é do tipoMin
com um tipo de entrada deInteger
. - A família de colunas
sum_family
é do tipoSum
com 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 famílias 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 uma das três famílias de colunas, usando uma chave de linha derow-key1
e um carimbo de data/hora 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
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
Verifique se você configurou o arquivo
cbtformat.yaml
corretamente.cat ~/cbtformat.yaml
O terminal exibe o conteúdo do arquivo
cbtformat.yaml
, que é semelhante a este: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. Agora, a tabela 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 um valor de 3 a cada coluna na 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 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
Use o comando
cbt read
novamente para ler os dados na tabela. Agora, cada célula 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 que foram gravados nele (3) e omax_column
contém o máximo dos dois valores que foram 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 do 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 exibidos na tabela Results 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 esses 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