projeto-dados-ia-databricks README

The project's README from github.com/lvgalvao/projeto-dados-ia-databricks. As one markdown file: README.md.

🧭 Imersão Jornada de Dados · Rota do Perfume

Construir a área de dados e vendas de uma distribuidora B2B do zero, em 4 noites. Empresa fictícia, dado gerado com seed fixa, sujeira proposital.

Domínio: distribuidora de perfumaria árabe — vende para perfumarias, farmácias, revendedoras e e-commerces. Stack: Databricks Free Edition (serverless), SQL, Python e Claude Code.


🗓️ As noites

Noite Data Tema Pasta
1 seg 24/08 Objetivo e a primeira análise aulas/aula-01-databricks-sql · 📺 gravação
2 ter 25/08 Engenharia de dados: o projeto roda sozinho aulas/aula-02-engenharia-de-dados · 📺 gravação
3 qua 26/08 Ciência de dados: o dado vira decisão aulas/aula-03-ciencia-de-dados · 📺 gravação
4 qui 27/08 Apps e agentes: o projeto ganha uma URL aulas/aula-04-app-e-genie · 📺 gravação

Cada pasta é autocontida: tem o próprio README, os exemplos numerados e o que for preciso rodar.

O arco das quatro noites

  noite 1           noite 2            noite 3            noite 4
  ───────           ───────            ───────            ───────
  a query        →  vira camada     →  vira decisão   →   vira produto
  quebra no         que roda           modelo e fila      app, Genie e o
  dado sujo         sozinha            dos 200            retorno da ligação

  "qual foi        "como não          "para quem eu      "e quem não
   a receita?"      repetir isso?"     ligo segunda?"     escreve SQL?"

🧾 Os 12 prompts, na ordem

O projeto inteiro — do CSV cru ao app que escreve de volta na gold — sai de doze prompts colados em sequência no Claude Code. Cada um termina com um deploy.

➡️ PROMPTS.md — a sequência completa, com o texto de cada prompt pronto para copiar.

Prompts Noite O que existe no fim
1 a 6 engenharia catálogo, pipeline de 12 tarefas, dashboard e Genie
7 a 9 ciência de dados modelo no Unity Catalog e a fila dos 200 · 15 tarefas
10 a 12 apps e agentes Genie da direção, o app e o retorno da ligação · 16 tarefas

O texto dos prompts no PROMPTS.md é extraído dos arquivos de cada noite, não copiado à mão — os dois nunca divergem. O que fica só nos arquivos de cada noite é o resto: o que mostrar antes de colar, o que falar enquanto o Claude Code trabalha, e a tabela "se der errado".


🚀 Comece por aqui

# 1. gerar o dataset (seed fixa: todo mundo gera exatamente o mesmo dado)
python3 material/gerar_dataset.py --saida ./dados --seed 42

# 2. autenticar no Databricks (cria o profile e salva a credencial)
databricks auth login

# 3. seguir a aula 01, que é toda pelo navegador
cd aulas/aula-01-databricks-sql && cat README.md

A noite 2 é a que exige terminal. O passo a passo completo — versões mínimas, o erro de credencial que quase todo mundo vê, bundle init, skills, MCP e guard rails — está em aulas/aula-02-engenharia-de-dados/README.md.

O runner scripts/run_sql.py executa qualquer .sql deste repositório no warehouse, uma statement por vez:

python3 scripts/run_sql.py aulas/aula-01-databricks-sql/exemplo-01-primeiro-select.sql

🎬 O catálogo nasce na aula

Os exemplos apontam para o catálogo lakehouse_rotaperfume, que ainda não existe — ele é criado ao vivo, no primeiro bloco da noite 1:

python3 scripts/run_sql.py aulas/aula-01-databricks-sql/00-setup-catalogo.sql

Isso é proposital. O aluno vê o catálogo nascer vazio, os schemas serem criados e o dado entrar — em vez de receber tudo pronto.

Se você já tem um catálogo com outro nome, troque o prefixo nas queries.

🗄️ O dataset

Gerado por material/gerar_dataset.py, ~14 MB, período de setembro/2024 a agosto/2026.

dados/
├── erp/    produtos · pedidos · itens_pedido · pagamentos · estoque
└── crm/    clientes · vendedores · carteira · oportunidades · visitas
Tabela Linhas O que tem
pedidos 28.729 cliente, vendedor, data, canal, status, valor
itens_pedido 197.724 SKU, quantidade, preço praticado, desconto
pagamentos 27.772 forma, parcelas, vencimento, status
produtos 292 categoria, marca, nota olfativa, custo, lançamento
estoque 8.400 snapshot semanal por SKU, com ruptura
clientes 3.040 CNPJ, razão social, segmento, cidade
visitas 37.936 data, resultado, duração
oportunidades 5.979 funil: origem, etapa, valor, motivo de perda
carteira 3.637 vínculo vendedor ↔ cliente, com vigência
vendedores 42 região, admissão, desligamento, meta

A sujeira é proposital. CNPJ em três formatos, data em dois, cliente duplicado, devolução como quantidade negativa, vendedor desligado com carteira ativa. Limpar isso é o conteúdo da noite 2 — não conserte o gerador.


📁 Estrutura

aulas/
├── aula-01-databricks-sql/          tudo pela interface: catálogo, bronze, 6 exemplos
├── aula-02-engenharia-de-dados/
│   ├── prd/                         os 6 prompts (+ o reset 00) e o roteiro da noite
│   ├── rotaperfume/                 o bundle DABs: raw → bronze → silver → gold → BI → Genie
│   └── slides/                      gerar_slides.py — os slides como código
├── aula-03-ciencia-de-dados/        3 prompts: features, modelo no UC e a fila dos 200
│   ├── prd/                         os 3 prompts, o roteiro e o 99-limpar
│   ├── gabarito/                    src/ml/ pronto, para conferir depois
│   └── notebooks/                   conferência do resultado e a demo de vazamento
└── aula-04-app-e-genie/             3 prompts: o Genie da direção, o app e o retorno
    ├── prd/                         os 3 prompts, o roteiro e o 99-limpar
    └── rotaperfume-direcao/         o Databricks App (AppKit), bundle próprio
material/      PRD da imersão, gerador do dataset, slides
scripts/       run_sql.py — roda um .sql no warehouse
dados/         dataset gerado (não versionado — reproduza com o comando acima)

🔑 Convenções

projeto-dados-ia-databricks (lvgalvao/projeto-dados-ia-databricks)

Searching Database…

What is this?This is a 4-night hands-on course that builds the data and sales analytics stack of a fictional B2B perfume distributor from scratch, using Databricks Free Edition, SQL, Python and Claude Code.
Is this a ready-made app or a course I work through?It is a project-based course: each night has its own self-contained folder with a README and numbered examples, and the whole build comes from pasting 12 prompts into Claude Code in sequence, each one ending in a deploy.
How do I follow along?Start at aulas/aula-01-databricks-sql and go through the four night folders in order; the night-2 README has the full terminal setup (minimum versions, bundle init, skills, MCP, guard rails), and PROMPTS.md has every prompt ready to paste into Claude Code.
What do I need before starting — a Databricks account, Claude Code?A Databricks Free Edition (serverless) workspace, Claude Code, plus SQL and Python; most commands also require the Databricks CLI with a --profile flag.
Is the sample dataset already clean?No, the mess is intentional: CNPJs appear in three formats, dates in two, customers are duplicated, returns show up as negative quantities, and terminated sales reps still hold active portfolios — cleaning it is the actual content of night 2, not a bug to patch in the generator.
Is this course only in Portuguese?Yes, the README, prompts and all course material are written in Portuguese and modeled on a Brazilian business context (CNPJ, perfumaria árabe, revendedoras).
What is the 'Rota do Perfume' story about?The course builds the data and sales stack for a fictional Arabic-perfume B2B distributor selling to perfumeries, pharmacies, resellers and e-commerces, with synthetic data generated using a fixed seed.
What do the 12 prompts actually produce?Prompts 1-6 build the catalog, a 12-task pipeline, a dashboard and Genie; prompts 7-9 train a model registered in Unity Catalog; prompts 10-12 build an executive Genie, an app, and a callback flow.
Does the data catalog already exist when I start?No, the lakehouserotaperfume catalog does not exist until it is created live during night 1 — if you already have a catalog under another name, you just swap the prefix in the queries.
What does the included dataset generator cover?scripts/material/gerardataset.py produces about 14 MB across ten tables (orders, order items, payments, products, stock, customers, visits, opportunities, portfolios, sales reps) spanning September 2024 to August 2026.
Creator
lvgalvao
Size
42.4 MB
Stars
279
Updated
CommitAug 27
Age
1mo
Commits · 90 Days