1. Visão geral
Este codelab ajuda você a analisar um fluxo de dados de transação de cartão de crédito que está sendo gravado no Bigtable. Você vai aprender a usar o modelo de fluxo de alterações do Bigtable para o BigQuery para exportar dados em tempo real. Em seguida, você vai conhecer técnicas para consultar o registro de fluxo de alterações e como reformatar os dados para criar um painel usando o Looker.
Este codelab é destinado a usuários técnicos que já conhecem o Bigtable, o uso de ferramentas de linha de comando e os serviços de streaming de eventos.
Este codelab mostra como fazer o seguinte:
- Criar uma tabela do Bigtable com um fluxo de alterações ativado
- Criar um conjunto de dados do BigQuery
- Implante o modelo do Dataflow
Bigtable change streams to BigQuery.
- Consultar o fluxo de eventos no BigQuery.
- Visualizar o fluxo de eventos com o Looker.
Este diagrama mostra a arquitetura do sistema que você vai implantar.
2. Configurar o projeto
- No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Verifique se o faturamento está ativado para o projeto do Google Cloud.
- Acesse esta página de ativação de API pré-preenchida para ativar as APIs necessárias do Dataflow, Bigtable, BigQuery, Looker e Cloud Storage.
3. Criar um conjunto de dados do BigQuery
Mais adiante no codelab, você analisará dados usando o BigQuery. Siga estas instruções para criar o conjunto de dados para a saída do pipeline de dados.
- No console do Google Cloud, acesse a página do BigQuery.
- No painel Explorer, encontre o nome do projeto e clique no menu flutuante (três pontos verticais ao lado do ID do projeto).
- Clique em Criar conjunto de dados.
- No painel Criar conjunto de dados, faça o seguinte:
- Para o código do conjunto de dados, insira
bigtable_bigquery_tutorial
. - Não altere as outras configurações padrão.
- Clique em Criar conjunto de dados.
4. Criar uma tabela do Bigtable com um fluxo de alterações ativado
O Bigtable é um serviço de banco de dados NoSQL de baixa latência e escalonável horizontalmente, e um caso de uso comum para ele é disponibilizar dados financeiros. Aqui, você vai criar uma tabela que pode armazenar transações de cartão de crédito. O Bigtable lida com as gravações de alta capacidade de processamento de transações em todo o mundo e pode até mesmo usar esses dados para detecção de fraudes em tempo real.
- No console do Google Cloud, acesse a página Instâncias do Bigtable.
- Clique no ID da instância que você está usando neste tutorial. Se você não tiver uma instância disponível, crie uma com o nome que preferir em uma região perto de você. Você pode usar as configurações padrão para tudo o que não for necessário.
- No painel de navegação à esquerda, clique em Tabelas.
- Clique em Criar tabela.
- Nomeie a tabela como
retail-database
. - Adicione um grupo de colunas chamado
transactions
. - Selecione Ativar fluxo de alterações.
- Não altere a política de coleta de lixo e o período de armazenamento com os valores padrão.
- Clique em Criar.
5. Inicializar um pipeline de dados para capturar o fluxo de alterações
O desempenho do Bigtable é ideal para leituras de ponto e verificações de intervalo de linha, mas a análise em toda a tabela pode sobrecarregar a capacidade de exibição e os recursos da CPU. O BigQuery é ótimo para análises em toda a tabela. Portanto, a solução que você vai usar aqui é a gravação dupla. Isso significa que você vai gravar seus dados no Bigtable e no BigQuery, que é uma técnica comum. Isso não exigirá mais programação porque você usará o modelo Bigtable change streams to BigQuery
do Dataflow: quando os dados são gravados no Bigtable, o pipeline grava um registro de alterações no BigQuery. Depois que os dados estiverem no BigQuery, você poderá executar consultas otimizadas em todo o conjunto de dados sem afetar o desempenho dos dados de veiculação no Bigtable.
- Na página Tabelas do Bigtable, encontre sua tabela
retail-database
. - Na coluna Fluxo de alterações, clique em Conectar.
- Na caixa de diálogo Conectar com o Dataflow, selecione BigQuery.
- Clique em Criar job do Dataflow.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro. Não é necessário fornecer parâmetros opcionais.
- Defina o ID do perfil de aplicativo do Cloud Bigtable como
default
. - Defina o conjunto de dados do BigQuery como
bigtable_bigquery_tutorial
.
- Cliquem em Executar job.
- Aguarde o status do job ser Iniciando ou Em execução antes de continuar. Pode levar cerca de cinco minutos assim que o job é colocado na fila. A página será atualizada automaticamente. Esse modelo cria um job de streaming para processar continuamente novos dados gravados no Bigtable até que o job seja interrompido manualmente.
6. Gravar alguns dados no Bigtable
Agora, você vai gravar um ano de transações de cartão de crédito na tabela do Bigtable. Esse conjunto de dados de exemplo inclui informações como número do cartão de crédito, nome e ID do comerciante e valor. Em um aplicativo real de processamento de cartão de crédito, esses dados seriam transmitidos para seu banco de dados em tempo real à medida que cada transação ocorre.
- Clique no botão no canto superior direito do console do Cloud para abrir o Cloud Shell.
- Se necessário, aceite o comando para autorizar o Cloud Shell.
- Faça o download do conjunto de dados.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Definir as variáveis de ambiente na linha de comando
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Use a CLI
cbt
para gravar um número de transações de cartão de crédito na tabelaretail-database
.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
A saída vai mostrar
Done importing 10000 rows.
7. Ver os registros de alterações no BigQuery
- No console do Google Cloud, acesse a página do BigQuery.
- No painel Explorer, expanda seu projeto e o conjunto de dados
bigtable_bigquery_tutorial
. - Clique na tabela
retail-database_changelog
. Talvez seja necessário atualizar o conjunto de dados se a tabela não estiver presente. - Para acessar o registro de alterações, clique em Visualização.
Teste algumas consultas
Agora, você pode executar algumas consultas sobre esse conjunto de dados para receber insights. As consultas SQL são fornecidas aqui, mas a documentação Consultar um registro de alterações do Bigtable no BigQuery tem mais informações sobre como gravar consultas para os dados do registro de alterações.
Procurar uma transação
Use a consulta abaixo para procurar os dados de uma transação específica.
SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"
Você vai notar que cada coluna gravada foi transformada em uma linha individual no BigQuery.
Encontrar o número de compras em cada categoria
Use a consulta a seguir para contar o número de compras por categoria.
SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category
Reformatar os dados
Para reconstruir cada transação em uma única linha de tabela do BigQuery, você vai girar os dados e salvar o resultado em uma nova tabela. Esse é um formato mais gerenciável para consulta.
CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
SELECT *, parse_numeric(amount) as sales_dollars FROM (
SELECT row_key, timestamp, column, value
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
)
PIVOT (
MAX(value)
FOR column in ("merchant", "amount", "category", "transaction_date")
)
)
Criar um painel do Looker
- Clique em Acessar visualização para acessar a página de detalhes da nova visualização.
- Clique em Exportar.
- Selecione Explorar com o Looker Studio
8. Adicionar gráficos ao painel
Agora você pode representar as informações em um gráfico para facilitar a compreensão e compartilhar como um relatório. Você vai adicionar três gráficos ao painel:
- Valores das transações ao longo do tempo
- Total de transações de cada comerciante
- Porcentagem de transações por categoria
Configurar a página
- Clique em cada gráfico e pressione "Excluir" para removê-los.
- Selecione Propriedades no lado direito da página para modificar os dados do gráfico.
Adicionar os gráficos
Valores das transações ao longo do tempo
- Clique em Adicionar um gráfico e crie um gráfico de séries temporais.
- Defina a dimensão como
transaction_date
.
- Defina a Métrica como
sales_dollars
.
Total de transações de cada comerciante
- Clique em Adicionar um gráfico e crie uma tabela.
- Defina Dimensão como
merchant
. - Defina Métrica como
sales_dollars
.
Porcentagem de transações por categoria
- Clique em Adicionar um gráfico e crie um gráfico de pizza.
- Defina Dimensão como
category
. - Defina Métrica como
sales_dollars
.
Ver alterações em tempo real
Analise os valores nos gráficos. Você pode clicar em comerciantes ou categorias específicos na tabela para filtrar todos os gráficos com base nesses valores e ter mais insights. Em seguida, grave mais dados e veja como esse gráfico será atualizado em tempo real.
- Volte para o Cloud Shell.
- Faça o download e grave o segundo conjunto de dados.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv column-family=transactions
- Volte ao painel do Looker e atualize os dados com o comando
Ctrl+Shift+E
ou clique em Atualizar dados no menu visualização. Agora você vai ver os dados de janeiro de 2024 nos gráficos.
Além disso, há muitas variações de gráficos e métricas que você pode criar. Leia mais na documentação do Looker.
9. Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto ou mantenha o projeto e exclua cada um dos recursos.
Interromper o pipeline de fluxo de alterações
- No console do Google Cloud, acesse a página Jobs do Dataflow.
- Selecione o job de streaming na lista de jobs.
- Na navegação, clique em Parar.
- Na caixa de diálogo "Interromper job", selecione Cancelar e clique em Interromper job.
Excluir os recursos do Bigtable
Se você criou uma instância do Bigtable para este tutorial, é possível excluí-la ou limpar a tabela criada.
- No console do Google Cloud, acesse a página Instâncias do Bigtable.
- Clique no ID da instância que você está usando neste tutorial.
- No painel de navegação à esquerda, clique em Tabelas.
- Localize a tabela
retail-database
. - Clique em Editar.
- Desmarque Ativar fluxo de alterações.
- Clique em Salvar.
- Abra o menu flutuante da tabela.
- Clique em Excluir e insira o nome da tabela para confirmar.
- Opcional: exclua a instância se você criou uma nova para este tutorial
Excluir o conjunto de dados do BigQuery
- No console do Google Cloud, acesse a página do BigQuery.
- No painel Explorer, encontre o conjunto de dados
bigtable_bigquery_tutorial
e clique nele. - Clique em Excluir, digite "excluir" e clique em Excluir para confirmar.