Selo de estado:
Preview(teto atual do produto) · Curso ACD-310 — Modelo semântico e modelagem dimensional · Aula 3 de 10 · Atualizado em 2026-10-04.
Objetivo#
Ao final desta aula você vai construir, passo a passo, o modelo estrela completo da Aurora Varejo: o fato vendas ligado às suas quatro dimensões.
Vídeo#
Identificador no manifesto: acd-310-03-montar-modelo-estrela-aurora · duração-alvo 9 min · tela do produto: /dashboards.
Roteiro:
00:00–01:00— Ponto de partida: o fatovendassozinho, sem nenhuma dimensão ligada · tela:/dashboards/[id](diagrama do modelo, sóvendas)01:00–03:00— Ligandoprodutos: arrastarvendas.produto_id → produtos.id, cardinalidade N-1 · tela:/dashboards/[id](diagrama, criando a relação)03:00–05:00— Repetindo paraclientesefiliais· tela:/dashboards/[id](diagrama, duas relações novas)05:00–06:30— Ligandocalendarioporvendas.data → calendario.data· tela:/dashboards/[id](diagrama completo em estrela)06:30–07:30— Marcandofiliais.ufcomo categoria geográfica (UF) · tela:/dashboards/[id](painel de propriedades da coluna)07:30–09:00— Validando com um visual de barras "receita por categoria" · tela:/dashboards/[id](visual novo cruzandovendas×produtos)
Conteúdo#
Esta aula é a continuação direta da aula 2: agora que você sabe qual tabela é fato e quais são dimensões, vamos ligá-las e formar o modelo estrela completo, seguindo o tutorial Modelo estrela.
As tabelas e as chaves
| Tabela | Papel | Chave usada na ligação |
|---|---|---|
vendas | Fato (grão: item de pedido) | produto_id, cliente_id, filial_id, data |
produtos | Dimensão | id |
clientes | Dimensão | id |
filiais | Dimensão | id |
calendario | Dimensão de tempo | data |
Uma dimensão se liga ao fato por uma chave: uma coluna do fato aponta para a coluna identificadora da dimensão. É sempre o fato apontando para a dimensão, nunca o contrário.
Passo a passo no editor
No editor do dashboard (/dashboards/[id]), abra o diagrama do modelo semântico e confirme que vendas está no centro — é ela que guarda os números que você vai somar (valor, quantidade, custo).
Em seguida, para cada dimensão:
- Arraste de
vendas.produto_idatéprodutos.id. A cardinalidade correta é N-1 (muitas vendas para um produto), com direção de filtro single (produtos → vendas). - Repita para
vendas.cliente_id → clientes.idevendas.filial_id → filiais.id, ambas também N-1/single. - Ligue
vendas.data → calendario.data(N-1/single). É esta relação específica que habilita toda a inteligência de tempo que você vai usar nas aulas 6 e 8 (YTD, comparação com o ano anterior).
Ao final, o diagrama se parece com isto:
calendario
|
clientes — vendas — produtos
|
filiaisNote que cada passo repete exatamente o mesmo movimento: uma coluna-chave do fato (que você identificou na aula 2 como parte do grão de vendas) apontando para a coluna identificadora de uma dimensão. Não há nada de especial em "clientes" versus "filiais" além do nome — o editor trata as quatro ligações da mesma forma, porque a estrela, por definição, nunca liga uma dimensão à outra diretamente, só ao fato central.
Marcando a categoria geográfica
Com as quatro relações criadas, marque a coluna filiais.uf como categoria geográfica (UF) nas propriedades da coluna. Esse passo não cria relação nenhuma — ele apenas diz ao catálogo "esta coluna é um estado brasileiro", o que habilita os mapas do Brasil nos visuais (ver Visuais) e é retomado na aula 7, quando falamos de categoria de dado e hierarquias.
Validando com um visual
O teste de que a estrela está correta é sempre o mesmo: criar um visual que cruze o fato com uma dimensão e confirmar que o número aparece. Um cartão de KPI somando a receita usa a medida mais simples possível:
SOMA(valor)Jogue essa medida num gráfico de barras com produtos.categoria no eixo — "receita por categoria" — e confirme:
- Bebidas e Limpeza aparecem como categorias separadas, cada uma com sua soma de
valor. - Trocar o eixo para
filiais.regiaoouclientes.segmentofunciona sem reconfigurar nada — esse é o ganho real da estrela: qualquer dimensão ligada ao fato vira um corte válido, de graça.
Erros comuns
- Ligar pela coluna errada. Confirme sempre que a chave do fato aponta para a coluna identificadora da dimensão (
id,data) — não para um atributo qualquer comocategoriaounome. Ligarvendas.produto_idaprodutos.categoriacria uma relação sem sentido (e provavelmente vazia). - Esquecer uma dimensão. Se
filiaisnão estiver ligada, qualquer visual "receita por região" fica indisponível — o sintoma é um campo que não aparece como opção de eixo. - Tentar resolver N-N como N-1.
produtosepromocoes, por exemplo, são muitos-para-muitos — ligar direto como se fosse N-1 duplicaria linhas. A aula 5 mostra a solução: uma tabela-ponte explícita. - Somar uma coluna do lado "um". Se, depois de montar a estrela, você tentar somar uma coluna de uma dimensão (por exemplo, uma meta em
filiais) diretamente sobre o join, o produto bloqueia a agregação em vez de entregar um total inflado — é a proteção anti-fan-out que a aula 4 explica em detalhe.
Nota
O motor de relações e de caminho de join é GA-candidato — congelado por um conjunto de testes de referência. A execução das consultas em BigQuery de produção continua Preview: em modo de demonstração, os visuais usam dados fixos (SP/RJ/MG) para você treinar sem custo de nuvem.
Faça você mesmo#
No workspace de treino Aurora Varejo (abra /dashboards no console, editor de um painel, aba do modelo):
- Confirme que
vendasestá no centro do diagrama. - Ligue
vendas.produto_id → produtos.id, cardinalidade N-1, direção single. - Ligue
vendas.cliente_id → clientes.id, N-1/single. - Ligue
vendas.filial_id → filiais.id, N-1/single. - Ligue
vendas.data → calendario.data, N-1/single. - Marque
filiais.ufcomo categoria geográfica (UF). - Crie um visual de barras "receita por
produtos.categoria" usando a medidaSOMA(valor)e confirme que os valores aparecem corretamente. - Troque o eixo do mesmo visual para
filiais.regiaoe depois paraclientes.segmento, sem tocar na medida, e confirme que os dois cortes funcionam.
Você terminou quando o diagrama do modelo mostrar as quatro relações (produtos, clientes, filiais, calendario) saindo de vendas, e o visual de barras responder corretamente aos três cortes diferentes.
Checagem rápida#
Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.
Documentação relacionada#
Capacidades ensinadas#
C05.1 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".