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)
EssencialSempre 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
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.