GSP1053

Visão geral
O Bigtable é o serviço de banco de dados NoSQL totalmente gerenciado e escalonável do Google. Ele é ideal para armazenar grandes volumes de dados em um repositório de chave-valor e para casos de uso como personalização, tecnologias de anúncios, tecnologia financeira, mídia digital e Internet das Coisas (IoT). O Bigtable conta com alta capacidade de processamento de operações de leitura e gravação em latência baixa para acesso rápido a grandes quantidades de dados para processamento e análise.
No Bigtable, cada linha representa uma única entidade (como um usuário ou sensor individual) e é rotulada com uma chave de linha exclusiva. Cada coluna armazena valores de atributos para cada linha, e os grupos de colunas podem ser usados para organizar colunas relacionadas. No cruzamento de uma linha e uma coluna, pode haver várias células, e cada célula representa uma versão diferente dos dados em um determinado carimbo de data/hora.
Neste laboratório, você vai usar a página do Bigtable no console do Google Cloud para analisar uma instância e a CLI do Bigtable (CLI cbt) para consultar dados em uma tabela da ferramenta. Você também vai criar um esquema de tabela e uma chave de linha com as práticas recomendadas para o Bigtable.
Atividades deste laboratório
Neste laboratório, você vai aprender a acessar uma instância do Bigtable e consultar esquemas dele.
- Analisar uma instância do Bigtable usando o console do Google Cloud.
- Configurar a CLI
cbt para sua instância.
- Criar um esquema e uma chave de linha adequados com as práticas recomendadas do Bigtable.
- Consultar dados no Bigtable.
Pré-requisitos
- Você precisa ter uma noção básica sobre os conceitos e termos de banco de dados, como instâncias, esquemas e chaves.
Configuração e requisitos
Antes de clicar no botão Começar o Laboratório
Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é ativado quando você clica em Iniciar laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.
Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, e não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.
Confira os requisitos para concluir o laboratório:
- Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima (recomendado) ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e de estudante, o que poderia causar cobranças extras na sua conta pessoal.
- Tempo para concluir o laboratório: não se esqueça que, depois de começar, não será possível pausar o laboratório.
Observação: use apenas a conta de estudante neste laboratório. Se usar outra conta do Google Cloud, você poderá receber cobranças nela.
Como iniciar seu laboratório e fazer login no console do Google Cloud
-
Clique no botão Começar o laboratório. Se for preciso pagar por ele, uma caixa de diálogo vai aparecer para você selecionar a forma de pagamento.
No painel Detalhes do Laboratório, à esquerda, você vai encontrar o seguinte:
- O botão Abrir Console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer Login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Username"}}}
Você também encontra o nome de usuário no painel Detalhes do Laboratório.
-
Clique em Próxima.
-
Copie a Senha abaixo e cole na caixa de diálogo de Olá.
{{{user_0.password | "Password"}}}
Você também encontra a senha no painel Detalhes do Laboratório.
-
Clique em Próxima.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: para acessar os produtos e serviços do Google Cloud, clique no Menu de navegação ou digite o nome do serviço ou produto no campo Pesquisar.
Ativar o Cloud Shell
O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.
-
Clique em Ativar o Cloud Shell
na parte de cima do console do Google Cloud.
-
Clique nas seguintes janelas:
- Continue na janela de informações do Cloud Shell.
- Autorize o Cloud Shell a usar suas credenciais para fazer chamadas de APIs do Google Cloud.
Depois de se conectar, você verá que sua conta já está autenticada e que o projeto está configurado com seu Project_ID, . A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
A gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.
- (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
- Clique em Autorizar.
Saída:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project
Saída:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Observação: consulte a documentação completa da gcloud no Google Cloud no guia de visão geral da gcloud CLI.
Tarefa 1: analisar uma instância do Bigtable no console
Para este exercício do laboratório, já foram criadas uma instância e uma tabela do Bigtable para você. Nesta tarefa, você vai acessar a instância do Bigtable chamada personalized-sales no console do Google Cloud e analisar os detalhes relevantes sobre ela.
-
No menu de navegação (
) do console do Google Cloud, em Bancos de dados, clique em Bigtable.
-
Na lista de instâncias do Bigtable, identifique o ID da instância chamada personalized-sales.
Analise os detalhes dos Nós e responda à pergunta a seguir.
-
Para acessar os detalhes da instância, clique no ID da instância chamada personalized-sales.
-
Clique em Editar instância.
Revise os detalhes dela e responda às perguntas a seguir.
-
Para fechar a página de edição da instância, clique em Cancelar.
-
Na tabela de IDs de cluster, na linha de personalized-sales-cluster1, clique no ícone de lápis Editar.
Analise os detalhes do cluster e responda às perguntas a seguir.
-
Para fechar os detalhes do cluster, clique em Cancelar.
-
No menu de navegação, em Instância, clique em Tabelas.
Analise os detalhes da tabela UserSessions e responda à pergunta a seguir.
Agora que você já analisou os detalhes da instância do Bigtable, pode seguir para a próxima tarefa para se conectar à instância usando a CLI cbt.
Tarefa 2: configurar a CLI do Bigtable
Para se conectar ao Bigtable usando os comandos da CLI cbt, primeiro você precisa usar o Cloud Shell para atualizar o arquivo de configuração .cbtrc com o ID do projeto e da instância.
Para saber como acessar o Cloud Shell, consulte a seção Configuração e requisitos no início deste guia do laboratório.
Embora a função principal da CLI cbt seja depuração e exploração, ela é uma ferramenta útil para aprender o básico do Bigtable. Para concluir operações CRUD (criar, ler, atualizar e excluir) em produção, recomendamos usar uma das bibliotecas de cliente do Bigtable.
- Para modificar o arquivo
.cbtrc com o ID do projeto, execute os seguintes comandos no Cloud Shell:
echo project = `gcloud config get-value project` \
>> ~/.cbtrc
- Para conferir uma lista das instâncias do Bigtable disponíveis no projeto, execute o seguinte comando:
cbt listinstances
A saída confirma que há uma instância chamada personalized-sales.
- Para modificar o arquivo
.cbtrc com o ID da instância do Bigtable, execute os seguintes comandos:
echo instance = personalized-sales \
>> ~/.cbtrc
- Para confirmar se você modificou o arquivo
.cbtrc com o ID do projeto e o ID da instância, execute o seguinte comando:
cat ~/.cbtrc
A saída será semelhante a esta:
project = <project-id>
instance = personalized-sales
- Para conferir uma lista das tabelas disponíveis na instância do Bigtable chamada personalized-sales, execute o seguinte comando:
cbt ls
A saída confirma que a instância já contém uma tabela chamada UserSessions. Você vai trabalhar com essa tabela em uma tarefa mais adiante.
Tarefa 3: criar um esquema e uma chave de linha no Bigtable
Nesta tarefa, você vai criar uma tabela de teste para conhecer os princípios de design de esquema e chave de linha no Bigtable.
Analisar dados brutos para ajudar a criar o esquema
Para criar um esquema e uma chave de linha no Bigtable, primeiro responda a perguntas importantes sobre os dados que serão armazenados.
| Pergunta |
Objetivo |
| O que cada linha representa? Por exemplo, um usuário individual ou sensor |
Identificar a estrutura da linha |
| Quais serão as consultas mais comuns a esses dados? |
Criar uma chave de linha |
| Quais valores são coletados para cada linha? |
Identificar as colunas (chamado de qualificadores de coluna) |
| Há colunas relacionadas que podem ser agrupadas ou colocadas juntas? |
Identificar os grupos de colunas |
Por exemplo, considere um conjunto de dados que captura sessões de compras on-line de todos os usuários do site de uma empresa de e-commerce. Cada linha representa uma sessão individual de compras on-line com um carimbo de data/hora. As consultas mais comuns ao conjunto de dados vão recuperar detalhes sobre sessões individuais e o ID do usuário associado. Em cada sessão de compras, os valores armazenados são todos os itens com os quais o usuário interagiu e comprou durante a sessão, bem como uma preferência de cor do usuário.
Os dados brutos podem ser organizados da seguinte forma, com mais colunas para outros produtos (como blue_jacket ou purple_bag):
| timestamp |
user_id |
preferred_color |
red_skirt |
red_hat |
orange_shoes |
sale |
| 1638940844260 |
1939 |
verde |
|
visto |
visto |
|
| 1638940844260 |
2466 |
azul |
visto |
visto |
|
|
| 1638940844260 |
1679 |
azul |
|
visto |
|
blue_blouse#blue_jacket |
| 1638940844260 |
2737 |
azul |
|
|
visto |
blue_dress#blue_jacket |
| 1638940844260 |
582 |
amarelo |
|
|
|
yellow_skirt |
Observação: o ID de usuário deste exemplo é apenas um exemplo simples de um identificador. Em uma aplicação típica do Bigtable, você provavelmente geraria um identificador universalmente exclusivo (UUID) para cada usuário.
Criar tabela de teste
Uma prática recomendada do Bigtable é armazenar dados com esquemas semelhantes na mesma tabela, em vez de usar tabelas separadas. Por exemplo, todos os dados das sessões de compras on-line podem ser armazenados em uma única tabela para facilitar a recuperação.
- Para criar uma tabela vazia chamada test-sessions, execute o seguinte comando:
cbt createtable test-sessions
Criar grupos de colunas
No Bigtable, algumas das práticas recomendadas para colunas e grupos de colunas são as seguintes:
-
Usar qualificadores de coluna como dados para não repetir o valor em cada linha.
-
Organizar colunas relacionadas no mesmo grupo de colunas.
-
Escolher nomes curtos, mas significativos, para os grupos de colunas.
Para este conjunto de dados, os qualificadores de coluna que armazenam interações com produtos podem ser agrupados em um grupo de colunas chamado Interactions, enquanto o qualificador de coluna que armazena compras pode ser organizado por si só em outro grupo de colunas chamado Sales. O esquema resultante seria organizado da seguinte forma:
| ... |
... |
... |
Interactions |
--- |
--- |
Sales |
| timestamp |
user_id |
preferred_color |
red_skirt |
red_hat |
orange_shoes |
sale |
| 1638940844260 |
1939 |
verde |
|
visto |
visto |
|
| 1638940844260 |
2466 |
azul |
visto |
visto |
|
|
| 1638940844260 |
1679 |
azul |
|
visto |
|
blue_blouse#blue_jacket |
| 1638940844260 |
2737 |
azul |
|
|
visto |
blue_dress#blue_jacket |
| 1638940844260 |
582 |
amarelo |
|
|
|
yellow_skirt |
- Para adicionar um grupo de colunas chamado Interactions à tabela test_sessions, execute o comando a seguir:
cbt createfamily test-sessions Interactions
- Para adicionar outro grupo de colunas chamado Sales, repita o comando anterior e especifique o novo nome do grupo:
cbt createfamily test-sessions Sales
- Para ver uma lista de grupos de colunas na tabela test_sessions, execute o seguinte comando:
cbt ls test-sessions
O comando retorna a seguinte saída:
Family Name GC Policy
----------- ---------
Interactions <never>
Sales <never>
Clique em Verificar meu progresso para conferir o objetivo.
Criar uma tabela do Bigtable.
Criar chave de linha
No Bigtable, é uma prática recomendada armazenar todas as informações de uma única entidade (como uma sessão individual de compras on-line) em uma única linha. É uma prática recomendada relacionada criar uma chave de linha que permita consultar e recuperar facilmente um intervalo de linhas bem definido.
Para aplicar as práticas recomendadas para as chaves de linha no Bigtable, é recomendável que você faça o seguinte:
-
Crie a chave de linha com base nas consultas que você usará para recuperar os dados.
-
Evite chaves de linha que comecem com um carimbo de data/hora ou IDs numéricos sequenciais ou que façam com que os dados relacionados não sejam agrupados.
-
Crie chaves de linha que comecem com um valor mais comum (como país) e terminem com um valor mais granular (como cidade).
-
Armazene vários valores delimitados em cada chave de linha usando valores de string legíveis por humanos (como ID do usuário seguido de carimbo de data/hora).
Na seção anterior, timestamp, user_id e preferred_color não foram organizados em um grupo de colunas. Lembre-se das perguntas sobre os dados brutos: a maioria das consultas a este conjunto de dados vai recuperar detalhes sobre sessões individuais e o ID de usuário associado.
Para dar suporte a essas consultas, uma boa chave de linha para a tabela seria uma combinação do ID do usuário e o carimbo de data/hora da sessão. Além disso, a chave de linha pode incluir um prefixo para rotular a preferência de cor de cada usuário, como green1939#1638940844260 para o ID do usuário 1939, para facilitar a recuperação da preferência de cor específica de todos os usuários.
| ... |
Interactions |
--- |
--- |
Sales |
| row_key |
red_skirt |
red_hat |
orange_shoes |
sale |
| green1939#1638940844260 |
|
visto |
visto |
|
| blue2466#1638940844260 |
visto |
visto |
|
|
| blue1679#1638940844260 |
|
visto |
|
blue_blouse#blue_jacket |
| blue2737#1638940844260 |
|
|
visto |
blue_dress#blue_jacket |
| yellow582#1638940844260 |
|
|
|
yellow_skirt |
- Para usar uma chave de linha para adicionar dados ao grupo de colunas Interactions, execute o seguinte comando:
cbt set test-sessions green1939#1638940844260 Interactions:red_hat=seen
- Para usar uma chave de linha para adicionar dados ao grupo de colunas Sales, execute o seguinte comando:
cbt set test-sessions blue2737#1638940844260 Sales:sale=blue_dress#blue_jacket
- Para conferir os dados armazenados na tabela, execute o seguinte comando:
cbt read test-sessions
Observe que, embora os dados de blue2737#1638940844260 tenham sido adicionados em segundo lugar, eles estão classificados mais acima nos resultados do que green1939#1638940844260. Os registros são retornados nessa ordem porque, no Bigtable, as linhas são classificadas e armazenadas lexicograficamente por chave de linha. Essa ordem é semelhante à ordem alfabética, mas as linhas que começam com números não serão classificadas do menor para o maior (como 1, 13, 2, 25, 6 e 70).
Limpar os dados de teste
- Para excluir a tabela de teste, execute o seguinte comando:
cbt deletetable test-sessions
Clique em Verificar meu progresso para conferir o objetivo.
Excluir uma tabela do Bigtable.
Tarefa 4: consultar dados no Bigtable
Nesta tarefa, você vai usar a CLI cbt para recuperar dados de uma versão pré-criada e totalmente preenchida da sua tabela de teste (a tabela UserSessions) e analisar como ela aplica as práticas recomendadas para criar esquemas e chaves de linha no Bigtable.
Consultar linhas com limite
Nesta etapa, você vai analisar como a tabela UserSessions segue as práticas recomendadas do Bigtable ao armazenar todas as interações do usuário com produtos e compras de produtos em uma única tabela que contém uma linha para cada sessão de compras on-line.
- Para conferir os dados das cinco primeiras linhas da tabela, execute o comando a seguir:
cbt read UserSessions \
count=5
O resultado será assim:
----------------------------------------------
ROW KEY
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
...
----------------------------------------------
ROW KEY
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
...
Os valores de saída devem ser semelhantes a estes:
----------------------------------------------
blue0#1638940844350
Interactions:blue_hat @ 2022/06/08-19:47:33.864000
"viewed details"
Interactions:green_jacket @ 2022/06/08-19:47:33.864000
"seen"
...
----------------------------------------------
blue1#1638940844304
Interactions:blue_dress @ 2022/06/08-19:47:33.864000
"purchased"
Sales:sale @ 2022/06/08-19:47:33.864000
"blue_dress"
Cada linha contém várias interações de um usuário com os produtos (como blue_hat e green_jacket), incluindo se o usuário viu, viu detalhes ou comprou o produto. Além disso, as compras são registradas na tabela no qualificador de coluna de vendas no grupo de colunas "Sales".
Em vez de criar uma tabela para cada tipo de interação, produto ou venda, a UserSessions segue as práticas recomendadas e contém todas as interações e produtos relacionados do usuário em uma única tabela. Além disso, todas as interações e compras de produtos em uma sessão individual de compras on-line são armazenadas como uma linha na tabela.
Consultar por chave de linha
As consultas mais eficientes no Bigtable recuperam dados usando uma das seguintes opções:
- chave de linha
- prefixo da chave de linha
- intervalo de linhas definidas pelas chaves de linha inicial e final
Nas próximas etapas, você vai usar cada opção na CLI cbt para consultar a tabela UserSessions e recuperar os registros desejados.
Encontre informações sobre como usar as bibliotecas de cliente do Bigtable para ler linhas únicas de dados usando chaves de linha na documentação do Bigtable.
Consultar por prefixo de chave de linha
- Para ver as dez primeiras linhas com a preferência de cor amarelo, execute este comando:
cbt read UserSessions \
prefix=yellow \
count=10
Os valores de saída devem ser semelhantes a estes:
----------------------------------------------
yellow991#1638940844645
Interactions:green_skirt @ 2022/06/08-19:47:33.864000
"seen"
Sales:sale @ 2022/06/08-19:47:33.864000
"yellow_skirt"
Consultar por intervalo específico de chaves de linha
- Para ver todas as linhas em um intervalo específico de chaves de linha, execute o seguinte comando:
cbt read UserSessions \
start=yellow941#1638940844381 \
end=yellow991#1638940844645
Os valores de saída devem ser semelhantes a estes:
----------------------------------------------
yellow991#1638940844603
Interactions:blue_blouse @ 2022/06/08-19:47:33.864000
"seen"
Sales:sale @ 2022/06/08-19:47:33.864000
"yellow_jacket#yellow_blouse"
O comando read inicia o intervalo com a chave de linha fornecida como o valor start e termina o intervalo antes da chave de linha fornecida como o valor end. Portanto, a chave de linha yellow991#1638940844645 não é retornada na saída.
Consultar por chave de linha específica
- Para conferir todos os dados de uma chave de linha específica, execute o seguinte comando:
cbt lookup UserSessions \
yellow582#1638940844260
Os valores de saída devem ser semelhantes a estes:
----------------------------------------------
yellow582#1638940844260
Interactions:blue_jacket @ 2022/06/08-19:47:33.864000
"seen"
Sales:sale @ 2022/06/08-19:47:33.864000
"yellow_skirt"
Consultar por qualificadores e grupos de colunas
Nas próximas etapas, você vai recuperar dados filtrados por qualificadores e grupos de colunas para ver como as práticas recomendadas para colunas são implementadas na tabela UserSessions.
- Para consultar as cinco primeiras linhas que têm dados no grupo de colunas "Interactions", execute o seguinte comando:
cbt read UserSessions count=5 \
columns="Interactions:.*"
Os valores de saída devem ser semelhantes a estes:
----------------------------------------------
blue0#1638940844501
Interactions:blue_blouse @ 2022/06/08-19:47:33.864000
"viewed details"
Interactions:green_jacket @ 2022/06/08-19:47:33.864000
"seen"
- Para consultar as cinco primeiras linhas que têm dados no qualificador de coluna green_jacket no grupo de colunas "Interactions", execute o seguinte comando:
cbt read UserSessions count=5 \
columns="Interactions:green_jacket"
Os valores de saída devem ser semelhantes a estes:
----------------------------------------
blue1009#1638940844380
Interactions:green_jacket @ 2022/06/08-21:30:08.683000
"seen"
----------------------------------------
blue101#1638940844263
Interactions:green_jacket @ 2022/06/08-21:30:08.683000
"seen"
- Para consultar as cinco primeiras linhas que têm dados no qualificador de coluna de vendas no grupo de colunas "Sales", execute o seguinte comando:
cbt read UserSessions count=5 \
columns="Sales:sale"
Os valores de saída devem ser semelhantes a estes:
----------------------------------------
blue0#1638940844379
Sales:sale @ 2022/06/08-19:47:33.864000
"blue_shoes#blue_shoes"
----------------------------------------------
blue1#1638940844409
Sales:sale @ 2022/06/08-19:47:33.864000
"blue_blouse"
Como o grupo de colunas chamado Sales tem apenas um qualificador de coluna (sale), os valores "Sales:sale" e "Sales:.*" para columns retornam as mesmas colunas.
Parabéns!
Neste laboratório, você usou o console do Google Cloud para analisar uma instância e a CLI do Cloud Bigtable (CLI cbt) para consultar dados em uma tabela. Você também criou um esquema de tabela e uma chave de linha com as práticas recomendadas para o Bigtable.
Próximas etapas/Saiba mais
Treinamento e certificação do Google Cloud
Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.
Manual atualizado em 30 de maio de 2024
Laboratório testado em 16 de fevereiro de 2023
Copyright 2025 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.