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.
-
Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Depois de inicializar a CLI gcloud, atualize e instale os componentes necessários:
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.
-
-
Verify 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.
-
Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Depois de inicializar a CLI gcloud, atualize e instale os componentes necessários:
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.
-
-
Verify 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
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"
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.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>
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
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 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
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 } 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
Criar uma instância do Bigtable
conectar-se à instância
Criar uma tabela com grupos de colunas agregados
Criar contadores na tabela
Ler os dados
Atualizar os contadores
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.