
olist lakehouse
Lakehouse para o ecommerce Olist, utilizando a Arquitetura Medallion, que organiza os dados nas camadas bronze, silver e gold.
Repository Info
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_*efct_*), pronto para consumo analítico.
!Diagrama do pipeline de dados do Lakehouse
🔄 Pipeline de Dados
-
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). -
Transformação:
O dbt aplica as transformações necessárias para gerar as camadas silver e gold dentro do PostgreSQL. -
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 comoC:/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
Clone the repository
git clone https://github.com/gabfxv/olist-lakehouseInstall dependencies
cd olist-lakehouse
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.