Um pipeline de dados para coletar, armazenar e analisar preços e vendas de ativos financeiros, incluindo Bitcoin e commodities.
.env_sample # Variáveis de ambiente de exemplo para conexão com o banco de dados
ExtractLoad/ # Scripts Python para extração e carregamento de dados
getBitcoin.py # Coleta dados de preços de Bitcoin
getComm.py # Coleta dados de preços de commodities (ouro, petróleo, prata)
getPrices_loop_db.py # Loop ETL principal: busca preços e carrega no banco de dados
Tables/ # Scripts SQL para esquema e transformações do banco de dados
Bronze/ # Tabelas de dados brutos
create_table.sql
Silver/ # Tabelas de vendas normalizadas e enriquecidas
silver_sales_normalized.sql
silver_sales_enriched.sql
silver_prices_hourly.sql
Gold/ # Visualizações analíticas
gold_kpi_by_customer.sql
gold_last_7_assets_sales.sql
- Extrair e Carregar
- Scripts Python em
ExtractLoad/buscam dados de preços de APIs (Coinbase para BTC, Yahoo Finance para commodities). - Os dados são carregados no banco de dados PostgreSQL.
- Camada Bronze
- Tabelas brutas para preços, clientes e vendas (
create_table.sql).
- Camada Prata
- Normaliza e enriquece os dados de vendas com informações de preço (
silver_sales_normalized.sql,silver_sales_enriched.sql). - Adiciona agregação de preços por hora para os ativos, facilitando análises temporais (
silver_prices_hourly.sql).
- Camada Ouro
- Visualizações analíticas para KPIs e vendas recentes (
gold_kpi_by_customer.sql,gold_last_7_assets_sales.sql).
- Instalar dependências
- Python:
pandas,sqlalchemy,yfinance,python-dotenv,requests - Banco de dados: PostgreSQL
- Configurar ambiente
- Copiar
.env_samplepara.enve preencher as credenciais do seu banco de dados.
- Criar tabelas
- Executar scripts SQL em
Tables/Bronze/para configurar o banco de dados.
- Executar ETL
- Executar
ExtractLoad/getPrices_loop_db.pypara iniciar a coleta e o carregamento de dados.
-
Coleta de Dados: Executar o script ETL para buscar e armazenar continuamente os preços dos ativos.
-
Análise: Usar os scripts SQL em
Tables/Silver/eTables/Gold/para transformar e analisar dados de vendas e preços.
Este projeto será utilizado para automatizar o monitoramento de preços e vendas de ativos financeiros, facilitando análises históricas, geração de relatórios e dashboards e suporte à tomada de decisão em investimentos.
Projeto feito durante participação na Jornada de Dados (www.suajornadadedados.com.br)