Escolhi uma base de dados da plataforma kaggle sendo ela a da amazon
E como ferramentas utilizei:
- Python : Realizar a limpeza dos dados e uppar os dados para o banco. Execute antes de tudo o script python (instalar_biblioteca.py)
- Google Cloud: Para abrigar os dados e o banco em si.
- Google Bquery : Para a realização das consultas ao banco.
- Google Locker : Criação da dashboard.
Acesse o link abaixo para criar uma instância do MySQL no Google Cloud:
Escolha as preferências desejadas e configure o banco de dados conforme necessário. Após a configuração, o banco estará pronto para uso.
No repositório do GitHub, há um arquivo denominado esquema.sql, que contém a estrutura do banco de dados. Siga os passos abaixo para realizar o upload desse arquivo:
- Acesse o link para o Google Cloud Storage: Google Cloud Storage
- Crie um bucket e associe-o ao banco de dados criado.
- Envie o arquivo
esquema.sqlpara o bucket. - Após o upload, importe o esquema para o banco de dados.
Dessa forma, a estrutura do banco será carregada corretamente.
Para estabelecer a conexão entre o ambiente local, o Google Cloud e o BigQuery, é necessário ativar as seguintes APIs:
- BigQuery API: Permite consultas SQL no BigQuery.
- Cloud Storage API: Necessária para armazenar arquivos CSV antes de carregá-los no BigQuery.
- Cloud SQL Admin API: Necessária para conectar um banco de dados SQL ao BigQuery.
Ative essas APIs no link: Ativar APIs
Execute o script remover_duplicatas.py para gerar um novo arquivo CSV com a remoção de dados duplicados e inconsistências.
Após a extração, execute o script normalizacao.py, responsável por:
- Realizar limpeza e padronização dos dados.
- Corrigir problemas de formatação.
- Converter preços e remover inconsistências.
Para inserir os dados no banco de dados, é necessário estabelecer uma conexão com o Cloud SQL. O repositório contém o arquivo cloud_sql_proxy.exe, que facilita essa conexão.
-
No terminal, execute o seguinte comando:
./cloud-sql-proxy --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME
Onde:
PATH_TO_KEY_FILEé o caminho do arquivo JSON com a chave de conexão.INSTANCE_CONNECTION_NAMEé o nome da instância criada no banco de dados.
-
Para obter a chave JSON:
- Acesse: Gerenciamento de Contas de Serviço
- Crie uma conta de serviço e baixe o arquivo JSON correspondente.
Para mais informações, consulte a documentação oficial do Google Cloud: Documentação Cloud SQL Proxy
Após estabelecer a conexão, execute o script codigo_etl.py. Esse script irá:
- Conectar-se ao banco de dados.
- Inserir os dados processados.
- Garantir a integridade dos dados armazenados.
Com os dados carregados no banco de dados, acesse o BigQuery pelo link: BigQuery Console
- No BigQuery, clique em Adicionar → Conexão com Fonte de Dados Externa.
- Configure a conexão com as credenciais do banco de dados do Google Cloud.
- Após a configuração, os dados estarão acessíveis para a realização de consultas SQL.
Distribuição de preços dos produtos:
SELECT
CASE
WHEN actual_price < 50 THEN 'Menos de $50'
WHEN actual_price BETWEEN 50 AND 100 THEN '$50 - $100'
WHEN actual_price BETWEEN 100 AND 200 THEN '$100 - $200'
WHEN actual_price BETWEEN 200 AND 500 THEN '$200 - $500'
ELSE 'Acima de $500'
END AS price_range,
COUNT(product_id) AS total_products
FROM product
GROUP BY price_range
ORDER BY total_products DESC;Produtos com maior desconto:
SELECT
product_name,
actual_price,
discounted_price,
discount_percentage
FROM product
ORDER BY CAST(discount_percentage AS DECIMAL(3,2)) DESC;Produtos mais vendidos por categoria principal:
SELECT
SUBSTRING_INDEX(category, '|', 1) AS main_category,
COUNT(*) AS total_products
FROM product
GROUP BY main_category
ORDER BY total_products DESC;Quantidade total de usuários, produtos e reviews:
SELECT
(SELECT COUNT(*) FROM user) AS total_users,
(SELECT COUNT(*) FROM product) AS total_products,
(SELECT COUNT(*) FROM review) AS total_reviews;Após configurar o BigQuery, acesse o Looker Studio para criar o dashboard:
- Clique em Criar → Dashboard em Branco.
- Adicione os dados do BigQuery.
- Selecione as tabelas desejadas.
- Personalize gráficos e métricas para visualização.