Este repositório contém um pipeline de ETL (Extract, Transform, Load) focado no mercado financeiro. O projeto extrai cotações em tempo real de moedas e criptoativos, realiza o tratamento dos dados e os armazena de forma persistente em um banco de dados relacional PostgreSQL.
O projeto segue as três fases clássicas da Engenharia de Dados:
A captura dos dados é feita via AwesomeAPI, utilizando a biblioteca requests. Os dados retornam em formato JSON, contendo informações de câmbio para USD, EUR e BTC.
Nesta fase, utilizamos o Pandas para limpar e tipar os dados corretamente:
- Tipagem Numérica: Conversão de strings para
float. - Limpeza de Atributos: Remoção de colunas redundantes (high, low, bid, ask).
- Normalização: Ajuste de colunas para minúsculo para compatibilidade com PostgreSQL.
- Cálculo de Valor Médio: Criação da coluna
valorbaseada na média entre o máximo e mínimo.
A carga é realizada através da integração entre Pandas e SQLAlchemy. O motor de conexão envia o DataFrame tratado diretamente para uma tabela no PostgreSQL.
- Python 3.12+
- Pandas: Processamento e manipulação de DataFrames.
- Requests: Interface HTTP para consumo de API.
- SQLAlchemy: Toolkit SQL para conexão com o banco.
- Psycopg2: Driver oficial do PostgreSQL.
| Coluna | Tipo SQL | Descrição |
|---|---|---|
| code | VARCHAR | Sigla da moeda (ex: USD) |
| codein | VARCHAR | Moeda de destino (ex: BRL) |
| pctchange | DECIMAL | Variação percentual do dia |
| timestamp | BIGINT | Unix Timestamp do registro |
| create_date | TIMESTAMP | Data e hora formatada |
| valor | DECIMAL | Preço médio (2 casas decimais) |
-
Certifique-se de ter o PostgreSQL rodando localmente.
-
Instale as dependências:
pip install pandas requests sqlalchemy psycopg2
-
Configure sua string de conexão no script.
-
Execute o script para popular seu banco de dados.