Skip to content

GabrielDataLab/Pipeline-ETL-com-Python-AWS-S3-PostgreSQL-containerizado

Repository files navigation

Pipeline ETL — Indicadores BCB (IPCA e Selic)

CI

Descrição

A pipeline foi desenvolvida para buscar dados (IPCA e Selic) via API do banco central do Brasil, carregados em um bucket no S3, transformados via python e feito load dos dados tratados em um banco de dados do postgres containnnerizado via Docker

Arquitetura

API BCB (SGS) │ ▼ extract.py ──► S3 (raw/ano/mes/dia/) │ ▼ transform.py ──► S3 (processed/ano/mes/dia/) │ ▼ load.py ──► PostgreSQL (indicadores_bcb)

Tecnologias

  • Python 3.11
  • AWS S3
  • PostgreSQL 15
  • Docker / Docker Compose
  • boto3
  • psycopg2
  • python-dotenv
  • GitHub Actions (CI/CD)

Métricas

  • 876 registros processados por execução (849 Selic + 27 IPCA)
  • 0 duplicatas — pipeline idempotente com upsert por data_referencia + serie

CI/CD

O projeto conta com pipeline de integração contínua via GitHub Actions, executado automaticamente a cada push ou pull request para a branch main:

  • Instalação automatizada das dependências
  • Execução dos testes (pytest) a cada alteração no código

Isso garante que qualquer mudança no pipeline seja validada antes de chegar à branch principal, sem depender de execução manual.

Como rodar localmente

Pré-requisitos

  • Docker Desktop instalado
  • Conta AWS com bucket S3 configurado
  • Arquivo .env na raiz com as variáveis abaixo

Variáveis de ambiente (.env)

DB_HOST=db-postgres DB_PORT=5432 DB_NAME=pipeline_db DB_USER=postgres DB_PASSWORD=sua_senha AWS_ACCESS_KEY_ID=sua_chave AWS_SECRET_ACCESS_KEY=sua_chave_secreta AWS_DEFAULT_REGION=us-east-2

Execução

git clone https://github.com/GabrielDataLab/Pipeline-ETL-com-Python-AWS-S3-PostgreSQL-containerizado
cd Pipeline-ETL-com-Python-AWS-S3-PostgreSQL-containerizado
docker-compose up --build

Estrutura do repositório

pipeline-bcb-etl/ ├── .github/ │ └── workflows/ │ └── ci.yml # Pipeline de CI/CD (GitHub Actions) ├── docker-compose.yml ├── Dockerfile ├── requirements.txt ├── src/ │ ├── extract.py │ ├── transform.py │ └── load.py ├── tests/ │ └── test_pipeline.py # Testes automatizados (pytest) ├── main.py └── README.md

About

Pipeline ETL idempotente de indicadores do Banco Central (IPCA/Selic) — S3 → Python → PostgreSQL, containerizado com Docker e CI/CD via GitHub Actions

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors