Pular para o conteúdo

Estrela Aurora: `vendas` + 4 dimensões

Aula 3 de 109 minOperarAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 9 min.

Objetivo: Construir o modelo estrela

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:

  1. 00:00–01:00 — Ponto de partida: o fato vendas sozinho, sem nenhuma dimensão ligada · tela: /dashboards/[id] (diagrama do modelo, só vendas)
  2. 01:00–03:00 — Ligando produtos: arrastar vendas.produto_id → produtos.id, cardinalidade N-1 · tela: /dashboards/[id] (diagrama, criando a relação)
  3. 03:00–05:00 — Repetindo para clientes e filiais · tela: /dashboards/[id] (diagrama, duas relações novas)
  4. 05:00–06:30 — Ligando calendario por vendas.data → calendario.data · tela: /dashboards/[id] (diagrama completo em estrela)
  5. 06:30–07:30 — Marcando filiais.uf como categoria geográfica (UF) · tela: /dashboards/[id] (painel de propriedades da coluna)
  6. 07:30–09:00 — Validando com um visual de barras "receita por categoria" · tela: /dashboards/[id] (visual novo cruzando vendas × 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

TabelaPapelChave usada na ligação
vendasFato (grão: item de pedido)produto_id, cliente_id, filial_id, data
produtosDimensãoid
clientesDimensãoid
filiaisDimensãoid
calendarioDimensão de tempodata

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:

  1. Arraste de vendas.produto_id até produtos.id. A cardinalidade correta é N-1 (muitas vendas para um produto), com direção de filtro single (produtos → vendas).
  2. Repita para vendas.cliente_id → clientes.id e vendas.filial_id → filiais.id, ambas também N-1/single.
  3. 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:

código
        calendario
            |
clientes — vendas — produtos
            |
         filiais

Note 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:

formula
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.regiao ou clientes.segmento funciona 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 como categoria ou nome. Ligar vendas.produto_id a produtos.categoria cria uma relação sem sentido (e provavelmente vazia).
  • Esquecer uma dimensão. Se filiais nã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. produtos e promocoes, 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):

  1. Confirme que vendas está no centro do diagrama.
  2. Ligue vendas.produto_id → produtos.id, cardinalidade N-1, direção single.
  3. Ligue vendas.cliente_id → clientes.id, N-1/single.
  4. Ligue vendas.filial_id → filiais.id, N-1/single.
  5. Ligue vendas.data → calendario.data, N-1/single.
  6. Marque filiais.uf como categoria geográfica (UF).
  7. Crie um visual de barras "receita por produtos.categoria" usando a medida SOMA(valor) e confirme que os valores aparecem corretamente.
  8. Troque o eixo do mesmo visual para filiais.regiao e depois para clientes.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".

Carregando seu progresso…