Pipeline automatizado para extração, processamento e armazenamento de dados de câmbio de moedas (USD-BRL) em tempo real, utilizando Python, PostgreSQL e Docker.
Pipeline em tempo real: extração de dados via API REST, persistência em PostgreSQL e append incremental no arquivo CSV.
Registro da extração (USD/EUR/BTC), persistência no banco, gravação em disco e agendamento:
Visualização do acúmulo de dados históricos no arquivo data/requisicoes.csv:
Containers da aplicação e PostgreSQL operando em segundo plano via Docker Compose:
---
- Linguagem: Python 3.11+
- Bibliotecas: requests, psycopg (v3), python-dotenv
- Banco de Dados: PostgreSQL
- Containerização: Docker e Docker Compose
- API Externa: AwesomeAPI (Cotações de Moedas)
- O script consome os dados mais recentes da cotação USD-BRL via API REST.
- Faz o parsing dos dados (taxa de compra e data/hora).
- Salva uma cópia local estruturada em arquivo CSV na pasta /data.
- Persiste os registros em uma tabela relacional (cotacoes) dentro do container PostgreSQL com persistência via volumes.
- Docker e Docker Compose instalados.
- Git instalado.
git clone https://github.com/daniloofrs/api-data-fetcher.git cd api-data-fetcher
Crie seu arquivo .env com base no .env.example: cp .env.example .env
(Ajuste os valores no .env caso queira alterar a senha ou porta do banco)
docker compose up -d --build
docker exec -it postgres-db psql -U postgres -d postgres -c "SELECT * FROM cotacoes;"
api-data-fetcher/
├── data/ # Diretório montado via volume com o CSV gerado
├── .dockerignore # Arquivos ignorados pelo build do Docker
├── .env.example # Modelo das variáveis de ambiente
├── .gitignore # Arquivos ignorados pelo Git (.env, venv, etc.)
├── docker-compose.yml # Orquestração dos containers (App + PostgreSQL)
├── Dockerfile # Definição do container da aplicação Python
├── main.py # Script principal do pipeline
└── requirements.txt # Dependências do projeto
