Skip to content

Construção de um Data Warehouse para e-commerce com Python e Postgres

Notifications You must be signed in to change notification settings

Ivi-SCD/dw-ecommerce

Repository files navigation

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

About

Construção de um Data Warehouse para e-commerce com Python e Postgres

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published