Power BI Wiki

Versão 1.0 Atualizado

Guia Completo de
Boas Práticas Power BI

Aprenda a criar relatórios profissionais, otimizar performance e implementar governança de dados com este guia completo de boas práticas.

Introdução

Este wiki foi criado para ajudar analistas de dados, desenvolvedores Power BI e tomadores de decisão a criarem soluções robustas, performáticas e escaláveis. Seguir boas práticas desde o início do projeto economiza tempo e evita retrabalho.

Performance

Relatórios rápidos e responsivos

UX/UI

Experiência do usuário otimizada

Governança

Segurança e conformidade

Modelagem de Dados

Estrela (Star Schema)

Essencial

Sempre utilize o modelo em estrela com tabelas de dimensão ao redor de tabelas fato. Evite relacionamentos muitos-para-muitos.

-- Estrutura recomendada:
Dim_Calendario (Data, Ano, Mês, Trimestre)
Dim_Produto (SKU, Nome, Categoria, Subcategoria)
Dim_Cliente (ID, Nome, Região, Segmento)
Fato_Vendas (Data, SKU, Cliente_ID, Valor, Quantidade)

Evite

  • Tabelas flat (tudo em uma tabela)
  • Relacionamentos bidirecionais excessivos
  • Colunas calculadas pesadas

Recomendado

  • Tabela Calendário dedicada
  • Chaves numéricas simples
  • Desativar carga de colunas desnecessárias

DAX Avançado

Medidas vs Colunas Calculadas

Prefira sempre medidas (measures) ao invés de colunas calculadas. Medidas são calculadas sob demanda, economizando memória.

-- ✅ MEDIDA (Recomendado)
Total Vendas = 
SUMX(
    Fato_Vendas,
    Fato_Vendas[Quantidade] * 
    Fato_Vendas[Valor Unitario]
)
-- ❌ COLUNA CALCULADA (Evitar)
Total Vendas = 
Fato_Vendas[Quantidade] * 
Fato_Vendas[Valor Unitario]

Variáveis (VAR)

Use variáveis para legibilidade e performance. Evita cálculos redundantes.

-- Exemplo com VAR
Margem % = 
VAR vTotalVendas = [Total Vendas]
VAR vTotalCusto = [Total Custo]
VAR vMargem = vTotalVendas - vTotalCusto
RETURN
    DIVIDE(vMargem, vTotalVendas, 0)

Dicas de Performance DAX

  • • Use DIVIDE() ao invés de operador /
  • • Evite filtros complexos dentro de iteradores (SUMX, AVERAGEX)
  • • Use TREATAS() para relacionamentos virtuais
  • • Cache de medições com variáveis

Relacionamentos

Configurações Ideais

1:1

Cardinalidade

Um-para-muitos (1:*). A tabela de dimensão sempre do lado "um", fato do lado "muitos".

Direção do Filtro

Simples (Single). Apenas dos dimensões para fatos. Evite bidirecional.

Comportamento

"Assume referencial integrity" apenas se os dados forem 100% limpos.

Design & Layout

Paleta de Cores

Power BI Yellow

#F2C811

Dark Gray

#333333

Accent Gradient

Violet → Indigo

Grids e Espaçamento

  • Use grid de 20px para alinhamento
  • Consistência em fontes (Segoe UI)
  • Contraste mínimo 4.5:1 (WCAG)
  • Theme JSON para consistência

Layout Recomendado

Canto Superior

Título, filtros globais, última atualização

Área Central

Visuais principais, KPIs, gráficos

Navegação

Botões de página, ajuda, botão reset

Otimização de Performance

1. Reduza Cardinalidade

Remova colunas desnecessárias, especialmente IDs únicos de granularidade alta. Use aggregations quando possível.

2. Tipos de Dados Adequados

Datas como Date (não DateTime), decimais Fixed Decimal Number, texto somente quando necessário.

3. Query Folding

Transformações no Power Query que podem ser "empurradas" para a fonte de dados (SQL) são mais rápidas.

4. Agregações Import Mode

Para grandes volumes, use tabelas agregadas em Import Mode apontando para DirectQuery detalhado.

// Performance Analyzer (DAX Studio)

EVALUATE

SUMMARIZECOLUMNS(

Dim_Calendario[Ano],

"Total", [Total Vendas]

)

RLS & Segurança

Row Level Security (RLS)

-- Exemplo: Usuário vê apenas sua região
[Regiao] = 
    LOOKUPVALUE(
        Dim_Usuario[Regiao],
        Dim_Usuario[Email],
        USERNAME()
    )

RLS Estático

Regras fixas no PBIX. Bom para dados públicos vs privados.

RLS Dinâmico

Baseado em login do usuário (USERNAME()). Usa tabela de permissões.

Atenção

Sempre teste RLS com "View as roles" antes de publicar. Verifique se medidas como ALL() não estão quebrando a segurança.

Padrões de Nomenclatura

Tipo Prefixo Exemplo
Tabela Fato fato_ fato_vendas
Tabela Dimensão dim_ dim_produto
Medida m_ ou sem prefixo Total Vendas
Visual vis_ vis_grafico_vendas
Página pg_ pg_overview

Documentação

Tooltips Descritivos

Adicione descrições em todas as medidas complexas (Properties > Description)

Camadas Organizadas

Use painel de seleção para organizar camadas. Nomeie visuais corretamente.

Data Dictionary

Mantenha planilha externa com definições de métricas e regras de negócio.