Code Monkey home page Code Monkey logo

dw-activity-compass's Introduction

Construção do Data Warehouse: E-Commerce

Este projeto implementa um Data Warehouse modelado dimensionalmente para E-Commerce utilizando PostgreSQL, Docker e Python. Com a centralização dos dados de vendas, clientes, avaliações e produtos podemos extrair insights estratégicos.

Informações úteis sobre o dataset:

O conjunto de dados utilizado contém informações de 100 mil pedidos de 2016 a 2018 feitos em vários marketplaces no Brasil. Seus recursos permitem visualizar um pedido em múltiplas dimensões: desde status do pedido, preço, desempenho de pagamento e frete até localização do cliente, atributos do produto e finalmente avaliações escritas pelos clientes.

Estrutura do Dataset:

Estrutura Dataset Ecoomerce Olist

Requisitos:

  • Docker Compose (Obrigatório) & Docker CLI (Opcional)
  • PostgreSQL
  • Python
  • Libs Python

Construção do Datawarehouse

Para a construção do Datawarehouse, separei em 3 etapas:

  • Processamento dos Dados para a Camada Trusted
  • Processamento dos Dados para a Camada Refined
  • Carregamento dos Dados para o Datawarehouse

Processamento Trusted

Nessa etapa, o processamento e limpeza dos dados da camada BRUTA(Raw) visa tornar os nosso dados confiáveis para a modelagem dimensional. O script principal se encontra na pasta /etl_scripts/processing_trusted.py, porém a construção de todo raciocínio e tomada de decisões se encontra nos notebooks da camada trusted.

Processamento Refined

Nessa etapa, o processamento e limpeza dos dados da camada TRUSTED visa tornar os nossos dados refinados e prontos para a modelagem analítica e relatórios. O script principal se encontra na pasta /etl_scripts/processing_refined.py, porém a construção de todo raciocínio e tomada de decisões se encontra nos notebooks da camada refined, seguindo a mesma lógica dos notebooks da trusted.

Carregamento para o Datawarehouse

Antes de continuar para a etapa final, com os dados já refinados, segue o resultado da nossa modelagem dimensional:

Modelagem Dimensional

Agora com nosso modelo definido, construi um script python que me ajudasse a automatizar o processo de construção do datawarehouse via python, sem necessidade de executar nenhum código SQL.

Nesse código acontece a automatização da criação das tabelas e automatização da criação das queries de inserções.

Segue o Script principal:

Execução do Projeto

Verifique os notebooks (Opcional):

  • Caso precise entender o processo de construção dos scripts, acompanhe os notebooks nas pasta: notebooks_trusted e notebooks_refined para entender melhor o processo e as decisões que resolvi tomar para a transformação dos dados.
  • Siga o README para uma visão geral e links para notebooks específicos.

Execução dos Scripts de Processamento e Limpeza dos Dataset

  • Antes de iniciar a execução dos scripts de processamento, é necessário que baixa as libs através do comando:
pip install -r requirements.txt
  • Navegue até a pasta etl_scripts.
  • Execute o script processing_trusted.py para iniciar o processamento dos dados (É necessário que você altere o path para o seu dataset que você pode baixar aqui.)
python processing_trusted.py
  • Com os dados confiáveis: Execute o script processing_refined.py para iniciar o refinamento dos dados.
python processing_refined.py
  • Agora com os dados confiáveis, antes de carregar eles com nosso script. Será necessário você alterar as variáveis DB, USER, PASS com as suas credenciais ou executar o docker-compose através do seguinte comando:
docker-compose up -d
  • Caso tenha utilizado o docker-compose, atualize as variáveis DB, USER, PASS com as credencias no arquivo docker-compose.yml

  • Com o nosso banco de dados relacional em execução na nossa máquina local e as variáveis alteradas devidamente podemos executar o carregamento da nossa modelagem relacional para o nosso banco de dados.

python load_to_dw.py
  • E assim teremos nosso Datawarehouse construído, caso queira visualizar com mais detalhes utilize o pgAdmin ou SGBD a sua escolha. Minha recomendação é a utilização do Datagrip caso queria visualizar de forma mais robusta e interativa.

Todos os Recursos Úteis

dw-activity-compass's People

Contributors

ivi-scd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.