Este repositório contém o desenvolvimento de um pipeline de dados completo e automatizado, simulando um ambiente corporativo para a empresa fictícia "TechStyle Commerce". O projeto foi criado como um case prático para demonstrar habilidades em engenharia de dados, desde a ingestão de fontes brutas até a disponibilização de dashboards para análise de negócio.
A TechStyle Commerce, um e-commerce de eletrônicos, enfrentava desafios com dados descentralizados e processos manuais de geração de relatórios. Este projeto soluciona esse problema através da construção de um pipeline de dados ELT (Extract, Load, Transform) que centraliza, processa e modela os dados de vendas, clientes e produtos em um Data Warehouse, servindo como uma fonte única da verdade (Single Source of Truth).
O resultado final é um Data Mart confiável que alimenta um dashboard de BI, permitindo que a equipe de análise tome decisões estratégicas baseadas em dados consistentes e atualizados.
- Centralizar Dados: Unificar dados de diferentes fontes (pedidos, pagamentos, clientes, produtos) em um único local.
- Automatizar Processos: Criar um fluxo de trabalho orquestrado que executa as etapas de ingestão e transformação de forma agendada e automática.
- Modelagem Dimensional: Estruturar os dados em um modelo dimensional (Star Schema) com tabelas Fato e Dimensão para otimizar consultas analíticas.
- Garantir a Qualidade dos Dados: Implementar testes para validar a integridade, consistência e regras de negócio dos dados.
- Democratizar o Acesso aos Dados: Disponibilizar os dados tratados para a área de negócio através de uma ferramenta de Business Intelligence.
A solução foi desenhada para ser modular, escalável e baseada em tecnologias open-source amplamente utilizadas no mercado.
+----------------+ +----------------+ +-------------------+ +-----------------+ +---------------------+ +-----------------+ +------------------+
| Fontes de Dados| -> | Data Lake | -> | Ingestão (Python) | -> | Data Warehouse | -> | Transformação (dbt) | -> | Camada Analítica| -> | Ferramenta de BI |
| (Arquivos CSV) | | (File System) | | (Orquestrado com | | (PostgreSQL) | | (SQL) | | (Marts) | | (Metabase) |
| | | | | Airflow) | | | | | | | | |
+----------------+ +----------------+ +-------------------+ +-----------------+ +---------------------+ +-----------------+ +------------------+
O dashboard final permite uma visão clara dos principais KPIs (Key Performance Indicators) do negócio, como receita mensal, distribuição de clientes e performance de produtos.
-
Clone o repositório:
git clone [https://github.com/seu-usuario/nome-do-repositorio.git](https://github.com/seu-usuario/nome-do-repositorio.git) cd nome-do-repositorio -
Configure as variáveis de ambiente: Se houver um arquivo
.env.example, renomeie-o para.env. Caso contrário, crie um arquivo.enve configure as variáveis necessárias (como senhas para o PostgreSQL). -
Suba os contêineres Docker: Este comando irá construir as imagens e iniciar todos os serviços (Airflow, PostgreSQL, Metabase).
docker-compose up -d --build
-
Acesse o Airflow:
- Abra seu navegador e acesse
http://localhost:8080. - Use o login e senha padrão (
airflow/airflow). - Ative a DAG
dag_pipeline_techstyleno painel principal para iniciar o pipeline.
- Abra seu navegador e acesse
-
Acesse o Metabase e configure o Dashboard:
- Acesse
http://localhost:3000. - Siga os passos de configuração inicial.
- Adicione uma nova conexão de banco de dados, apontando para o container do PostgreSQL. Use as credenciais definidas no
docker-compose.ymlou no seu arquivo.env. O nome do host do banco de dados será o nome do serviço no Docker Compose (ex:postgres_dw). - Comece a criar suas perguntas e seu dashboard!
- Acesse
A seguir, uma lista das principais tecnologias e conceitos aplicados neste projeto:
- Docker & Docker Compose: Containerização de todos os serviços para garantir um ambiente de desenvolvimento e produção consistente e isolado.
- Apache Airflow: Ferramenta open-source para orquestrar, agendar e monitorar os workflows de dados (DAGs).
- PostgreSQL: Utilizado tanto como backend para o Airflow quanto como o Data Warehouse analítico para armazenar os dados tratados.
- Python: Linguagem principal para os scripts de ingestão de dados, utilizando a biblioteca Pandas para manipulação e leitura dos arquivos.
- dbt (data build tool): Ferramenta para a etapa de transformação (T) do ELT. Permite construir modelos de dados com SQL de forma modular, testável e documentada.
- SQL: Linguagem utilizada para todas as transformações, agregações e modelagem de dados dentro do dbt.
- Metabase: Ferramenta de Business Intelligence open-source, de fácil configuração, utilizada para criar o dashboard final e democratizar o acesso aos dados.
- ELT (Extract, Load, Transform): Paradigma moderno de data integration onde os dados brutos são primeiro carregados no Data Warehouse e transformados posteriormente.
- Data Lake (simulado): Utilização do sistema de arquivos local para armazenar os dados brutos (raw data) antes do processamento.
- Data Warehouse: Banco de dados relacional otimizado para consultas analíticas (OLAP).
- Modelagem Dimensional (Star Schema): Metodologia para organizar os dados em tabelas Fato (eventos, métricas) e Dimensão (contexto, atributos), facilitando a análise.
- Qualidade de Dados (Data Quality): Implementação de testes automatizados com
dbt testpara garantir a confiabilidade dos dados no Data Mart.
- Git & GitHub: Sistema de controle de versão para gerenciamento do código-fonte e documentação.
- Visual Studio Code: Editor de código com extensões para Docker, Python e SQL.
- ✅ Definição do Problema e Arquitetura
- ✅ Configuração do Controle de Versão
- ✅ Geração dos Dados de Origem (Fontes)
- ✅ "Dockerizar" o Projeto
- ✅ Estruturar o Projeto Airflow
- ✅ Desenvolver o Script de Ingestão
- ✅ Criar a DAG de Ingestão no Airflow
- Configurar o Projeto dbt
- Criar Modelos de Staging (staging)
- Criar Modelos Dimensionais e de Fatos (marts)
- Implementar Testes de Qualidade
- Integrar dbt com Airflow
- Configurar a Ferramenta de BI