gabfxv
MCP Servergabfxvpublic

olist lakehouse

Lakehouse para o ecommerce Olist, utilizando a Arquitetura Medallion, que organiza os dados nas camadas bronze, silver e gold.

Repository Info

0
Stars
0
Forks
0
Watchers
0
Issues
Python
Language
-
License

About This Server

Lakehouse para o ecommerce Olist, utilizando a Arquitetura Medallion, que organiza os dados nas camadas bronze, silver e gold.

Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.

Documentation

Olist Lakehouse

Este projeto constrói um Lakehouse para o ecommerce Olist, utilizando a Arquitetura Medallion, que organiza os dados nas camadas bronze, silver e gold.

O objetivo é demonstrar como estruturar um pipeline de dados moderno, desde a ingestão de dados brutos até a modelagem dimensional, pronto para análises e BI.


🏗️ Arquitetura

A arquitetura segue o conceito de Lakehouse, que combina as melhores características de data lakes e data warehouses.

Camadas:

  • 🥉 Bronze: dados brutos com únicas mudanças sendo redundâncias adicionadas por meio do Spark.
  • 🥈 Silver: dados limpos, tratados e integrados.
  • 🥇 Gold: modelo dimensional (tabelas dim_* e fct_*), pronto para consumo analítico.

!Diagrama do pipeline de dados do Lakehouse


🔄 Pipeline de Dados

  1. Ingestão:
    Airflow (via Astro) orquestra a extração dos dados do Kaggle, armazena no MinIO (Data Lake), realiza transformações iniciais complexas via Apache Spark e depois carrega no PostgreSQL (camada bronze).

  2. Transformação:
    O dbt aplica as transformações necessárias para gerar as camadas silver e gold dentro do PostgreSQL.

  3. Consumo:
    Os dados na camada gold estão prontos para análises em ferramentas de BI, notebooks, dashboards, etc.


⚙️ Configuração

O projeto foi construído de que praticamente todas as configurações possam ser definidas nos arquivos Docker.

Entre elas, nota-se principalmente configurações de autenticação, como username e password.

Uma que merece atenção especial é o diretório .dbt:

  • É necessário alterar, conforme necessário, o caminho do .dbt de acordo com a localização no seu dispositivo. No docker-compose.yml, ele está definido como C:/Users/User/.dbt, pois era a localização para o desenvolvedor.

🚀 Inicialização

Para adicionar esse repositório, execute:

git clone https://github.com/gabfxv/olist-lakehouse
cd olist-lakehouse
python -m venv .venv
source activate .venv

É necessário o Docker para rodar o projeto. Caso não o tenha instalado, baixe por aqui.

Para baixar o DBT, é necessário executar (ou o comando equivalente em Windows):

pip install -r requirements.txt
mkdir -p ~/.dbt

Para subir o PostgreSQL, MinIO e o DBT Docs, execute:

docker volume create dbt-project --opt type=none --opt device=./olist_elt --opt o=bind
docker-compose up -d

Para iniciar o Astro/Airflow, primeiro instale ele aqui e então, execute:

cd astro-airflow
astro dev start

Para iniciar o OpenMetadata, execute:

cd openmetadata
docker compose -f docker-compose-postgres.yml up -d

Os seguintes serviços estão acessíveis a partir destas URLs:

  • Astro: http://localhost:8080
  • Minio: http://localhost:9001
  • DBT Docs: http://localhost:8081
  • OpenMetadata: http://localhost:8585/

🗂️ Modelagem de Dados

A Gold layer segue o seguinte diagrama:

!Diagrama do modelo da gold layer

Consultas analíticas em Linguagem Natural

Você pode adicionar o MCP Server do Postgres ao Claude Desktop, por exemplo, para realizar consultas em linguagem natural.

Para fazer isso, adicione a seguinte configuração ao claude_desktop_config.json:

{
  "mcpServers": {
    "postgres": {
      "command": "docker",
      "args": [
        "run", 
        "-i", 
        "--rm", 
        "mcp/postgres", 
        "postgresql://gabfxv:password@host.docker.internal:5543/olist"]
    }
  }
}

💡 Ideias futuras

  • Alterar banco de dados PostgreSQL para um banco de dados colunar.
  • Criar emuladores para haver dados novos diários sendo gerados.

Quick Start

1

Clone the repository

git clone https://github.com/gabfxv/olist-lakehouse
2

Install dependencies

cd olist-lakehouse
npm install
3

Follow the documentation

Check the repository's README.md file for specific installation and usage instructions.

Repository Details

Ownergabfxv
Repoolist-lakehouse
LanguagePython
License-
Last fetched8/10/2025

Recommended MCP Servers

💬

Discord MCP

Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.

integrationsdiscordchat
🔗

Knit MCP

Connect AI agents to 200+ SaaS applications and automate workflows.

integrationsautomationsaas
🕷️

Apify MCP Server

Deploy and interact with Apify actors for web scraping and data extraction.

apifycrawlerdata
🌐

BrowserStack MCP

BrowserStack MCP Server for automated testing across multiple browsers.

testingqabrowsers

Zapier MCP

A Zapier server that provides automation capabilities for various apps.

zapierautomation