Ir para o conteúdo

Pipeline de Dados: SQL Server → MinIO → Delta Lake

Bem-vindo à documentação do projeto de Engenharia de Dados desenvolvido para a disciplina de Pipeline de Dados.

O que este projeto faz

Este projeto implementa um pipeline de dados completo seguindo a Arquitetura Medalhão, partindo de um banco de dados relacional (SQL Server) e chegando a tabelas Delta Lake armazenadas em um object storage compatível com S3 (MinIO).

SQL Server (SeguroDB)
        │  pyodbc + pandas
MinIO — landing-zone/  (CSV)
        │  Apache Spark + Delta Lake
MinIO — bronze/  (Delta Tables)
        │  INSERT / UPDATE / DELETE
        │  HISTORY / TIME TRAVEL
     Análise de Dados

Funcionalidades

Feature Descrição
Extração SQL Server Leitura de todas as tabelas via pyodbc
Upload para MinIO Armazenamento CSV no bucket landing-zone
Conversão Delta Lake Spark lê CSV e escreve formato Delta no bucket bronze
Transações ACID Garantia de consistência nas operações
DML completo INSERT, UPDATE e DELETE em tabelas Delta
Histórico de versões Cada operação gera uma nova versão registrada
Time Travel Consulta a qualquer versão histórica dos dados

Início Rápido

# 1. Subir containers
docker compose up -d

# 2. Configurar ambiente Python
cp .env.example .env
uv venv && source .venv/bin/activate
uv sync

# 3. Executar notebooks em ordem:
#    00_setup_sqlserver.ipynb
#    01_sqlserver_to_minio_csv.ipynb
#    02_csv_to_delta.ipynb
#    03_dml_delta.ipynb

Tecnologias Utilizadas

  • :material-lightning-bolt: Apache Spark 3.5.3 — Motor de processamento distribuído
  • :material-database: Delta Lake 3.2.0 — Formato lakehouse com ACID e Time Travel
  • :material-server: MinIO — Object Storage compatível com S3
  • :material-microsoft: SQL Server 2022 — Banco de dados relacional fonte
  • :material-docker: Docker Compose — Orquestração dos containers
  • :material-language-python: Python 3.11 — Linguagem principal do projeto