IAcme Data Pipeline, ETL & BIIAcme Data Pipeline, ETL & BI
Pipeline ETL acadêmico que transforma dados sujos de e-commerce num dashboard de BI.Academic ETL pipeline that turns messy e-commerce data into a BI dashboard.
ProblemaProblem
Projeto acadêmico individual — um desafio de engenharia de dados envolvendo limpeza, pipeline ETL e BI, simulando o cenário de uma empresa fictícia, a IAcme, um e-commerce de hardware. O cenário proposto era de uma empresa enfrentando problemas de tomada de decisão por causa de dados transacionais fragmentados e inconsistentes, cobrindo o período de 2020 a 2024, com reflexos simulados em gestão de estoque, eficácia de campanhas de marketing e comunicação com o cliente.An individual academic project — a data engineering challenge covering data cleaning, ETL pipelines and BI, simulating the scenario of a fictional company, IAcme, a hardware e-commerce. The proposed scenario was a company struggling with decision-making because of fragmented, inconsistent transactional data spanning 2020 to 2024, with simulated knock-on effects on inventory management, marketing campaign effectiveness and customer communication.
O desafio consistia em consolidar, limpar e transformar esses dados brutos em uma base confiável, capaz de sustentar um painel de inteligência de negócio.The challenge was to consolidate, clean and transform that raw data into a reliable base capable of sustaining a business intelligence dashboard.
SoluçãoSolution
A primeira etapa foi de diagnóstico, usando o DBeaver para explorar o banco de dados original e mapear os problemas de qualidade existentes: valores nulos e em branco, registros duplicados, formatos inconsistentes (datas, CPFs, CEPs), anomalias matemáticas (preço e estoque negativos) e sujeira em campos de texto (espaços extras, quebras de linha).The first step was diagnostic, using DBeaver to explore the original database and map out the existing quality problems: null and blank values, duplicate records, inconsistent formats (dates, tax IDs, zip codes), mathematical anomalies (negative price and stock) and dirty text fields (extra spaces, line breaks).
Com os problemas mapeados, foi construído um pipeline ETL em Python, modularizado em scripts com responsabilidade única, para garantir manutenção e escalabilidade — de setup do banco até orquestração do fluxo completo.With the problems mapped, a Python ETL pipeline was built, modularized into single-responsibility scripts to ensure maintainability and scalability — from database setup to orchestrating the full flow.
Os dados tratados foram armazenados em um banco SQLite e conectados ao Power BI via driver ODBC, alimentando um dashboard organizado em quatro pilares: desempenho operacional, fluxo de pedidos, inventário e portfólio, e inteligência de cliente.The cleaned data was stored in a SQLite database and connected to Power BI via an ODBC driver, feeding a dashboard organized into four pillars: operational performance, order flow, inventory & portfolio, and customer intelligence.
Estrutura do relatórioReport structure
Desempenho OperacionalOperational Performance
- Faturamento bruto e ticket médioGross revenue and average ticket
- Média diária de vendasDaily average sales
- Previsão de faturamento para o próximo trimestreRevenue forecast for the next quarter
Fluxo de PedidosOrder Flow
- Funil de pedidos concluídos, em andamento e canceladosFunnel of completed, in-progress and canceled orders
- Taxa de cancelamentoCancellation rate
Inventário e PortfólioInventory & Portfolio
- Ranking dos produtos mais vendidosRanking of best-selling products
- Faturamento por categoria de hardwareRevenue by hardware category
Inteligência de ClienteCustomer Intelligence
- Segmentação demográfica por faixa etáriaDemographic segmentation by age group
- Análise geográfica de vendas por UFGeographic sales analysis by state
- Sazonalidade histórica de demandaHistorical demand seasonality
ResultadosResults
Esse projeto teve resultado técnico e de aprendizado, não de negócio, já que se trata de um desafio acadêmico com dados simulados. Os principais ganhos: validação prática de um pipeline ETL completo e modularizado em Python, aplicando separação de responsabilidades (extração, transformação, carga, orquestração) em vez de um script único monolítico — reforçando uma prática comum em ambientes profissionais de engenharia de dados.This project delivered technical and learning results, not business ones, since it's an academic challenge with simulated data. The main gains: hands-on validation of a complete, modularized Python ETL pipeline, applying separation of concerns (extraction, transformation, loading, orchestration) instead of a single monolithic script — reinforcing a practice common in professional data engineering environments.
Também envolveu tratamento de um conjunto amplo e realista de problemas de qualidade (nulos, duplicados, inconsistência de formato, anomalias numéricas e sujeira de texto), construção de um banco de produção com schema e tipagem definidos manualmente (DDL), e integração de ponta a ponta entre Python, banco de dados e uma ferramenta de BI corporativa — cobrindo as quatro frentes estratégicas do dashboard.It also involved handling a broad, realistic set of quality issues (nulls, duplicates, format inconsistencies, numeric anomalies and text dirtiness), building a production database with a manually defined schema and typing (DDL), and end-to-end integration between Python, a database and a corporate BI tool — covering the dashboard's four strategic fronts.
TecnologiasTechnologies
Fluxograma de ArquiteturaArchitecture Flowchart
DiagnósticoDiagnosis
DBeaver usado para explorar o banco original e mapear os problemas de qualidade: nulos, duplicados, formatos inconsistentes (datas, CPFs, CEPs) e anomalias numéricas.DBeaver used to explore the original database and map out quality problems: nulls, duplicates, inconsistent formats (dates, tax IDs, zip codes) and numeric anomalies.
Setup do Banco (DDL)Database Setup (DDL)
setup_db.py cria o schema do banco de produção com tipagem já corrigida, antes do restante do pipeline rodar.setup_db.py creates the production database schema with corrected typing, before the rest of the pipeline runs.
Pipeline ETL ModularModular ETL Pipeline
extract.py → transform.py → load.py, cada um com responsabilidade única, tudo orquestrado por main.py.extract.py → transform.py → load.py, each with a single responsibility, all orchestrated by main.py.
Banco de Produção (SQLite)Production Database (SQLite)
Dados já limpos, tratados e tipados, prontos para consulta — conexões geridas via SQLAlchemy em database_conf.py.Data already cleaned, treated and typed, ready to query — connections managed via SQLAlchemy in database_conf.py.
Dashboard (Power BI)Dashboard (Power BI)
Conectado ao SQLite via driver ODBC, alimentando os 4 pilares: desempenho operacional, pedidos, inventário e cliente.Connected to SQLite via an ODBC driver, feeding the four pillars: operational performance, orders, inventory and customer.




