Engenharia de DadosInicianteNão iniciado

Pipeline ETL com Python

Construir pipeline de extração, transformação e carga de dados entre fontes distintas.

em 1 a 2 semanas
8 a 16 h
em 1 a 2 semanas
o que você entrega
Repositório
o que você entrega
com checkpoint
5 etapas
com checkpoint
de aceite
9 requisitos
de aceite
0 de 5 etapas

Por que este projeto

Os dados nunca chegam prontos: vêm de um CSV exportado do sistema de vendas, de uma API pública, de uma planilha de alguém. O trabalho de engenharia de dados começa em pegar isso, limpar, padronizar e colocar num banco onde outras pessoas conseguem consultar. Este projeto é esse caminho de ponta a ponta, em Python, com log de cada etapa e a possibilidade de rodar de novo sem duplicar nada.

Você vai sair sabendo

Extrair dados de CSV e de uma API públicaTransformar com Pandas: tipos, nulos e nomes de colunaValidar antes de gravarCarregar num banco com SQLAlchemyLogar e tornar o pipeline reexecutável

O que precisa estar lá no fim

É o contrato do projeto. Quando os 9 estiverem verdade, você terminou.

  • Extração de pelo menos uma fonte (CSV ou API pública), em uma função separada
  • Pelo menos 3 regras de transformação (conversão de tipo, tratamento de nulo, padronização de nome de coluna), listadas no README
  • Validação que impede a carga se faltar coluna obrigatória ou se o resultado vier vazio
  • Carga em PostgreSQL ou SQLite via SQLAlchemy, com a tabela criada pelo próprio pipeline
  • Log (arquivo ou stdout) com início, fim, quantidade de linhas por etapa e erros
  • Rodar duas vezes não duplica dados (upsert, truncate antes da carga, ou chave única), e o README explica a estratégia
  • O pipeline roda inteiro com um comando (por exemplo, python pipeline.py)
  • requirements.txt com as dependências
  • Pelo menos 5 commits com mensagens que dizem o que mudou

Etapas

  1. Extrair

    1 a 2 h
    • Escolha a fonte e escreva extract.py: lê o CSV ou chama a API e devolve um DataFrame.
    • Imprima shape e as primeiras linhas.

    Pronto quando: python extract.py mostra os dados brutos.

  2. Transformar

    2 a 4 h
    • Em transform.py, padronize nomes de coluna, converta datas e números, trate nulos.
    • Anote cada regra que aplicar: elas vão para o README.

    Pronto quando: O DataFrame sai com tipos certos e sem as sujeiras que você listou.

  3. Validar

    1 h
    • Antes de carregar, confira colunas obrigatórias e se há linhas.
    • Falha de validação para o pipeline com mensagem clara.

    Pronto quando: Remover uma coluna do CSV faz o pipeline parar antes de gravar.

  4. Carregar

    2 a 3 h
    • Em load.py, conecte com SQLAlchemy, crie a tabela e grave.
    • Decida como rodar de novo sem duplicar.

    Pronto quando: Consultar o banco mostra os dados e rodar de novo não dobra a contagem.

  5. Logar e documentar

    1 a 2 h
    • Adicione logging com contagem por etapa.
    • Escreva o README com o desenho E, T, L, o comando, as regras e um print do log.

    Pronto quando: Outra pessoa roda o pipeline só com o README.

Entrega

Terminou? Marque a conclusão e o projeto vira parte do seu perfil.

Depois

Post pronto para o LinkedIn

Dados nunca chegam prontos. Eu fiz o caminho todo. Um pipeline ETL em Python: extrai de [CSV ou API], transforma com Pandas, valida antes de gravar, carrega num banco com SQLAlchemy, e loga cada etapa. Roda com um comando e pode rodar de novo sem duplicar. O que ficou: • Separar extração, transformação e carga em funções • Validar antes de carregar (aprendi na dor) • Log que conta linhas por etapa A regra de transformação mais chata foi [conta aqui]. Repositório nos comentários. #engenhariadedados #python #etl #pandas #boranatech

Orquestração com Airflow