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…

这是什么?这是一门为期 4 个晚上的实战课程,使用 Databricks Free Edition、SQL、Python 和 Claude Code,从零搭建一家虚构 B2B 香水经销商的数据与销售分析技术栈。
这是现成的应用,还是需要我自己完成的课程?它是一门项目式课程:每个晚上都有自己独立完整的文件夹,内含 README 和编号示例,整个搭建过程就是把 12 个提示词依次粘贴进 Claude Code,每个提示词都以一次部署收尾。
我该怎么跟着学?从 aulas/aula-01-databricks-sql 开始,按顺序过完四个“夜晚”文件夹;第 2 晚的 README 包含完整的终端配置(最低版本、bundle init、skills、MCP、防护栏),PROMPTS.md 里则是每个可直接粘贴进 Claude Code 的提示词。
开始之前需要什么——Databricks 账户?Claude Code?一个 Databricks Free Edition(serverless)工作区、Claude Code,外加 SQL 和 Python;大多数命令还需要带 --profile 参数的 Databricks CLI。
示例数据集已经清洗干净了吗?没有,混乱是刻意为之:CNPJ 有三种格式、日期有两种,客户有重复,退货以负数数量出现,已离职的销售仍持有活跃客户组合——清洗这些数据正是第 2 晚的实际内容,而不是生成器里需要修补的 bug。
这门课程只有葡萄牙语吗?是的,README、提示词和全部课程材料都是葡萄牙语写的,并以巴西商业环境为背景(CNPJ、perfumaria árabe、revendedoras)。
“Rota do Perfume”的故事是关于什么的?课程为一家虚构的阿拉伯香水 B2B 经销商搭建数据与销售技术栈,客户包括香水店、药房、分销商和电商,合成数据用固定随机种子生成。
这 12 个提示词实际做出什么?提示词 1-6 构建数据目录、一个 12 任务的流水线、仪表盘和 Genie;提示词 7-9 训练一个注册进 Unity Catalog 的模型;提示词 10-12 构建面向管理层的 Genie、一个应用和一个回调流程。
我开始时数据目录已经存在吗?不存在,lakehouserotaperfume 目录直到第 1 晚现场创建才会出现——如果你已经有其他名字的目录,只需在查询里替换前缀。
附带的数据集生成器覆盖哪些内容?scripts/material/gerardataset.py 生成约 14 MB、共十张表的数据(订单、订单明细、支付、产品、库存、客户、拜访、商机、客户组合、销售代表),时间跨度从 2024 年 9 月到 2026 年 8 月。
Creator
lvgalvao
Size
42.4 MB
Stars
279
Updated
CommitAug 27
Age
1mo
Commits · 90 Days