Analisar e visualizar dados de transações de cartões de crédito no Bigtable usando o BigQuery e o Looker

1. Visão geral

Este codelab mostra como analisar um fluxo de dados de transações com cartão de crédito gravados no Bigtable. Você vai aprender a usar o modelo de fluxos 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 aprender a reformatar os dados para criar um painel usando o Looker.

Este codelab é destinado a usuários técnicos familiarizados com o Bigtable, o uso de ferramentas de linha de comando e os serviços de fluxo de eventos.

426dc59200875a20.png

Neste codelab, você vai aprender a 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.
  • Consulte o fluxo de eventos no BigQuery.
  • Visualize o fluxo de eventos com o Looker.

Este diagrama mostra a arquitetura do sistema que você vai implantar.

336e940307d0e0a.png

2. Configurar o projeto

  1. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto na nuvem do Google.

eb5309715175de69.png

  1. Verifique se a cobrança está ativada para o projeto do Google Cloud.
  2. Acesse esta página pré-preenchida de ativação de APIs para ativar as APIs necessárias para Dataflow, Bigtable, BigQuery, Looker e Cloud Storage.

3. Criar um conjunto de dados do BigQuery

Você vai analisar dados usando o BigQuery mais tarde no codelab. Siga estas instruções para criar o conjunto de dados da saída do pipeline.

  1. No console do Google Cloud, acesse a página do BigQuery.
  2. No painel Explorer, encontre o nome do projeto e clique no menu flutuante (três pontos verticais ao lado do ID do projeto).
  3. Clique em Criar conjunto de dados.

122bc1a411b8dc63.png

  1. 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 escalonamento horizontal. Um caso de uso comum é a disponibilização de dados financeiros. Aqui, você vai criar uma tabela que pode armazenar transações com cartão de crédito. O Bigtable pode processar as gravações de alta capacidade de processamento de transações no mundo todo e até usar esses dados para detecção de fraude em tempo real.

  1. No console do Google Cloud, acesse a página de instâncias do Bigtable.
  2. 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 quiser em uma região perto de você. Você pode usar as configurações padrão para todo o resto.

a2e8de7b66dc42e.png

  1. No painel de navegação à esquerda, clique em Tabelas.
  2. Clique em Criar tabela.

9c267c00f93747c4.png

  • Nomeie a tabela como retail-database.
  • Adicione um grupo de colunas chamado transactions.
  • Selecione Ativar fluxo de alterações.
  • Mantenha os valores padrão da política de coleta de lixo e do período de armazenamento.
  • Clique em Criar.

696cd1399c354816.png

5. Inicializar um pipeline de dados para capturar o fluxo de alterações

O desempenho do Bigtable é ideal para leituras de pontos e verificações de intervalo de linhas, 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. Por isso, 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, o que é uma técnica comum. Isso não exige codificação adicional, já que você vai usar o modelo do Dataflow Bigtable change streams to BigQuery: quando os dados são gravados no Bigtable, o pipeline grava um registro de mudança no BigQuery. Depois que os dados estiverem no BigQuery, você poderá realizar consultas otimizadas em todo o conjunto de dados sem afetar o desempenho dos dados de serviço no Bigtable.

f4cd9d8faf10ce77.png

  1. Na página Tabelas do Bigtable, encontre sua tabela retail-database.
  2. Na coluna Fluxo de alterações, clique em Conectar.
  3. Na caixa de diálogo Conectar com o Dataflow, selecione BigQuery.
  4. Clique em Criar job do Dataflow.
  5. 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.
  1. Cliquem em Executar job.
  2. Aguarde o status do job ser Iniciando ou Em execução antes de continuar. Isso leva cerca de cinco minutos assim que o job é colocado na fila. A página será atualizada automaticamente. Esse modelo cria um job de streaming, que pode processar continuamente novos dados gravados no Bigtable até que seja interrompido manualmente.

a04908b37c6fe96b.png

6. Gravar alguns dados no Bigtable

Agora, você vai gravar um ano de transações de cartão de crédito na sua tabela do Bigtable. Este exemplo de conjunto de dados 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 ocorresse.

  1. Abra o Cloud Shell clicando no botão no canto superior direito do console do Cloud.

f6395329b04ecb64.png

  1. Se for preciso, aceite a solicitação para autorizar o Cloud Shell.
  2. Faça o download do conjunto de dados.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Definir as variáveis de ambiente na linha de comando
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Use a CLI cbt para gravar várias transações de cartão de crédito na tabela retail-database.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

A saída vai dizer

Done importing 10000 rows.

7. Ver os registros de alterações no BigQuery

  1. No console do Google Cloud, acesse a página do BigQuery.
  2. No painel Explorer, expanda o projeto e o conjunto de dados bigtable_bigquery_tutorial.
  3. Clique na tabela retail-database_changelog. Talvez seja necessário atualizar o conjunto de dados se a tabela não estiver presente.
  4. Para acessar o registro de alterações, clique em Visualização.

aa97ff01f944832.png

Teste algumas consultas

Agora, você pode executar algumas consultas nesse 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 a seguir para pesquisar 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"

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 da tabela do BigQuery, você vai fazer a rotação dos dados e salvar o resultado em uma nova tabela. Esse é um formato mais fácil de consultar.

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

  1. Clique em Acessar visualização para acessar a página de detalhes da nova visualização.
  2. Clique em Exportar.
  3. Selecione Explorar com o Looker Studio.

bb45482e9101b0f.png

8. Adicionar gráficos ao painel

Agora você pode criar um gráfico com as informações 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 para cada comerciante
  • Porcentagem de transações por categoria

426dc59200875a20.png

Configurar a página

  1. Clique em cada gráfico e pressione "Excluir" para remover.
  2. 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

  1. Clique em Adicionar um gráfico e crie um gráfico de série temporal.
  2. Defina a dimensão como transaction_date.
  1. Defina a métrica como sales_dollars.

372bdf2a2bcdb817.png

Total de transações para cada comerciante

  1. Clique em Adicionar um gráfico e crie uma tabela.
  2. Defina Dimensão como merchant.
  3. Defina Métrica como sales_dollars.

Porcentagem de transações por categoria

  1. Clique em Adicionar um gráfico e crie um gráfico de pizza.
  2. Defina Dimensão como category.
  3. Defina Métrica como sales_dollars.

Conferir mudanças em tempo real

Reserve um tempo para analisar os valores nos gráficos. Clique em comerciantes ou categorias específicas na tabela para filtrar todos os gráficos com base nesses valores e ter mais insights. Em seguida, você pode gravar mais dados e ver como esse gráfico será atualizado em tempo real.

  1. Volte para o Cloud Shell.
  2. 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
  1. 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.

Há muitas variações de gráficos e métricas que você pode criar além disso. 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

  1. No console do Google Cloud, acesse a página de jobs do Dataflow.
  2. Selecione o job de streaming na lista de jobs.
  3. Na navegação, clique em Parar.
  4. 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.

  1. No console do Google Cloud, acesse a página de instâncias do Bigtable.
  2. Clique no ID da instância que você está usando neste tutorial.
  3. No painel de navegação à esquerda, clique em Tabelas.
  4. Localize a tabela retail-database.
  5. Clique em Editar.
  6. Desmarque Ativar fluxo de alterações.
  7. Clique em Salvar.
  8. Abra o menu flutuante da tabela.
  9. Clique em Excluir e insira o nome da tabela para confirmar.
  10. Opcional: exclua a instância se você criou uma nova para este tutorial

Excluir o conjunto de dados do BigQuery

  1. No console do Google Cloud, acesse a página do BigQuery.
  2. No painel Explorer, encontre o conjunto de dados bigtable_bigquery_tutorial e clique nele.
  3. Clique em Excluir, digite "excluir" e clique em Excluir para confirmar.

A seguir