Projeto de engenharia de dados que implementa um pipeline ETL completo para coleta, transformação e disponibilização de preços de criptomoedas. O sistema utiliza containers Docker, banco de dados relacional, API REST e dashboard analítico.
Demonstrar competências em engenharia de dados:
- Construção de pipelines ETL profissionais
- Containerização com Docker
- Desenvolvimento de APIs REST
- Modelagem e persistência de dados
- Boas práticas de desenvolvimento
- CI/CD
Este projeto demonstra a construção de um pipeline de dados profissional com:
- Extração de dados de API externa
- Transformação e enriquecimento dos dados
- Persistência em banco PostgreSQL
- Exposição via API REST
- Visualização com dashboard (Metabase)
- Orquestração com Docker
- Testes automatizados
- CI/CD com GitHub
Fluxo principal:
graph TD
A[API Externa] --> B[ETL Pipeline]
B --> C[PostgreSQL]
C --> D[API REST]
C --> E[Metabase Dashboard]
D --> F[Usuário]
E --> F
Cada componente roda em um container isolado:
graph LR
subgraph Docker Network
DB[(PostgreSQL)]
ETL[Container ETL]
API[Container API]
META[Metabase]
end
ETL --> DB
API --> DB
META --> DB
- db → banco PostgreSQL
- etl → pipeline de dados
- api → serviço REST
- metabase → visualização de dados
- Python 3.11
- FastAPI
- SQLAlchemy
- PostgreSQL
- Docker & Docker Compose
- Pytest
- Metabase
- GitHub Actions (CI/CD)
O pipeline segue o padrão Extract → Transform → Load.
Coleta preços de criptomoedas em USD e BRL a partir de API externa.
- Padroniza a estrutura dos dados
- Adiciona timestamp UTC
- Calcula taxa de câmbio implícita
- Cria tabela automaticamente (se não existir)
- Insere histórico incremental no banco
Fluxo ETL:
flowchart TD
S[Start] --> E[Extract]
E --> T[Transform]
T --> L[Load]
L --> F[Dados salvos]
crypto-data-pipeline/
│
├── api/ # API REST
├── etl/ # Pipeline ETL
├── tests/ # Testes automatizados
├── docker-compose.yml
├── requirements.txt
└── README.md
- api/ → endpoints REST e lógica da API
- etl/ → scripts de extração, transformação e carga
- tests/ → testes automatizados do pipeline
- Docker
- Docker Compose
git clone https://github.com/seu-usuario/crypto-data-pipeline.git
cd crypto-data-pipeline
docker-compose up --build- API: http://localhost:8000
- Metabase: http://localhost:3000
- PostgreSQL: porta 5432
GET /prices
Retorna todos os registros armazenados.
GET /compare/{coin}
Compara valores USD x BRL de uma moeda específica.
Executar testes automatizados:
pytestOs testes validam a etapa de extração do pipeline ETL.
O projeto utiliza Docker Compose para orquestrar:
- Banco de dados PostgreSQL
- Pipeline ETL
- API REST
- Dashboard Metabase
Todos os containers compartilham uma rede interna isolada.
Fluxo de desenvolvimento:
develop → pull request → testes automáticos → merge main
Esse fluxo garante qualidade de código e integração contínua.
O Metabase conecta diretamente ao PostgreSQL para visualização dos dados históricos.
Exemplos de análises possíveis:
- Evolução de preços das criptomoedas
- Comparação entre moedas
- Taxa de câmbio implícita
Projeto desenvolvido para fins educacionais e de portfólio.



