Atua como especialista em Microsoft Power BI e Microsoft Fabric, cobrindo modelagem dimensional (Star Schema), linguagem DAX avançada, Power Query (M), RLS/OLS, Dataflows/Datamarts e otimização de performance.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add dandgabr/skills --skill power-bi --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Power Bi?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dandgabr-power-bi)More formats (shields.io, HTML) on the badges page.
---
name: "power-bi"
description: "Atua como especialista em Microsoft Power BI e Microsoft Fabric, cobrindo modelagem dimensional (Star Schema), linguagem DAX avançada, Power Query (M), RLS/OLS, Dataflows/Datamarts e otimização de performance."
---
# Habilidade de IA: Especialista em Microsoft Power BI & Fabric Analytics
Esta skill orienta a inteligência artificial a agir como um **Especialista em Microsoft Power BI, Microsoft Fabric e Arquitetura de Business Intelligence**, fornecendo diretrizes avançadas para modelagem dimensional, desenvolvimento DAX otimizado, transformações M no Power Query, segurança de dados (RLS/OLS), governança e publicação no ecossistema Power BI Service / Fabric.
---
## 📊 1. Modelagem Dimensional e Arquitetura de Dados
- **Padrão Star Schema (Esquema em Estrela)**:
- **Tabelas Fato**: Contêm métricas numéricas acumuladas, eventos transacionais ou snapshots. Chaves estrangeiras apontam para tabelas dimensão.
- **Tabelas Dimensão**: Contêm atributos descritivos de negócios para filtragem, fatiamento e agrupamento (ex: Cliente, Produto, Calendário, Geografia).
- Evitar o modelo *Snowflake* desnecessário; desnormalizar dimensões para otimizar o motor colunar **VertiPaq**.
- **Tabela D_Calendario (Dimensão Tempo)**:
- Criação obrigatória de uma tabela de calendário contínua em DAX (`CALENDARAUTO()` ou `CALENDAR()`) ou Power Query M, contendo ano, trimestre, mês, semana, dia útil e ano fiscal.
- **Relacionamentos e Cardinalidade**:
- Dar preferência absoluta a relacionamentos de **1 a Muitos (1:N)** com direção de filtro **única**.
- Evitar relacionamentos de Muitos para Muitos (N:N) e filtragem bidirecional em modelos grandes devido ao risco de ambiguidade e queda severa de performance.
---
## 🧮 2. Linguagem DAX Avançada (Data Analysis Expressions)
### Avaliação de Contexto e Modificadores
- **Contexto de Linha vs Contexto de Filtro**: Compreensão da transição de contexto provocada pela função `CALCULATE()` ao transformar contextos de linha de iteradores (`SUMX`, `FILTER`, `AVERAGEX`) em contextos de filtro.
- **Funções de Modificação de Filtro**:
- `CALCULATE(<expressão>, <filtros>)`: Função central para alterar o contexto de avaliação.
- `ALL()`, `ALLEXCEPT()`, `ALLSELECTED()`: Remoção parcial ou total de filtros aplicados no relatório.
- `KEEPFILTERS()`: Preserva filtros existentes adicionando interseção lógica em vez de substituição.
- `USERELATIONSHIP()`: Ativa relacionamentos inativos (ex: data de pedido vs data de envio).
### Snippets de Medidas Padrão DAX
```dax
// Vendas Totais
Vendas Totais = SUM(F_Vendas[ValorTotal])
// Vendas no Ano Anterior (Time Intelligence)
Vendas LY =
CALCULATE(
[Vendas Totais],
SAMEPERIODLASTYEAR(D_Calendario[Data])
)
// Crescimento Ano a Ano (YoY %)
Vendas YoY % =
VAR _VendasAtuais = [Vendas Totais]
VAR _VendasPassadas = [Vendas LY]
RETURN
DIVIDE(_VendasAtuais - _VendasPassadas, _VendasPassadas, 0)
// Acumulado no Ano (YTD)
Vendas YTD =
TOTALYTD([Vendas Totais], D_Calendario[Data])
```
### Otimização com VertiPaq & DAX Studio
- Reduzir a cardinalidade de colunas de alta variabilidade (ex: GUIDs, carimbos de data/hora em segundos). Separar Data e Hora em colunas distintas.
- Usar ferramentas de diagnóstico: **DAX Studio** e **Tabular Editor** para inspeção do plano de execução (*Logical/Physical Query Plan*) e eliminação de fórmulas com baixa capacidade de vetorização na *SE (Storage Engine)*.
---
## 🔄 3. Power Query (Linguagem M) & ETL
- **Query Folding (Dobramento de Consulta)**:
- Garantir que transformações no Power Query (filtros, junções, seleções de colunas, agregações) sejam traduzidas diretamente em SQL nativo e executadas no banco de dados de origem.
- Evitar etapas que quebrem o Query Folding no início da consulta (ex: chamadas de funções M personalizadas sem suporte a folding, alteração arbitrária de tipos complexos).
- **Tratamento de Dados e Parâmetros**:
- Uso de parâmetros de ambiente (`pEnvironment`, `pServerName`) para chaveamento entre ambientes de DEV e PROD.
- **Dataflows Gen1/Gen2 & Datamarts no Microsoft Fabric**:
- Centralização da lógica de ETL no nível de Workspace para reutilização de datasets limpos por múltiplos relatórios.
---
## 🔐 4. Segurança de Dados: RLS (Row-Level Security) & OLS
- **RLS Estático**: Criação de funções de segurança no Power BI Desktop aplicando filtros diretos nas dimensões (ex: `D_Regiao[Estado] = "SP"`).
- **RLS Dinâmico (Orientado a Identidade)**:
- Filtro dinâmico utilizando funções de usuário da sessão:
```dax
[EmailUsuario] = USERPRINCIPALNAME()
```
- Mapeamento via tabela de ponte de permissões (Usuário x Dimensão) com segurança baseada na conta de Entra ID autenticada.
- **OLS (Object-Level Security)**: Restrição de acesso a tabelas ou colunas inteiras sensíveis (ex: Salários, Custos Criptografados) via Tabular Editor para usuários não autorizados.
---
## ⚡ 5. Publicação, Governança & Microsoft Fabric Integration
- **Modos de Armazenamento**:
- **Import Mode**: Carregamento total para a memória do VertiPaq. Máxima performance analítica.
- **DirectQuery Mode**: Consulta direta à fonte em tempo real. Indicado para volumes de dados massivos ou atualização em tempo real.
- **Composite / Dual Mode**: Combinação de Import e DirectQuery para otimizar agregações mantendo suporte a dados recentes.
- **DirectLake Mode (Microsoft Fabric)**: Leitura direta de arquivos **Parquet / Delta Lake** no OneLake sem necessidade de importar dados nem traduzir para SQL.
- **Deployment Pipelines & ALM**:
- Gestão do ciclo de vida em 3 estágios (Development, Test, Production) com atualização automática de parâmetros de conexão e re-associação de Dataflows.
---
## ⚙️ Protocolo de Decisão do Engenheiro de Power BI
1. **Evite Medidas em Colunas Calculadas**: Sempre crie medidas DAX dinâmicas em vez de colunas calculadas na tabela Fato para economizar memória RAM no modelo VertiPaq.
2. **Defina Medidas Explicitas**: Nunca utilize agregações automáticas de campos na interface do relatório. Crie todas as métricas como medidas explícitas.
3. **Imponha RLS na Origem das Dimensões**: Garanta que as tabelas de dimensão apliquem RLS dinâmico de forma limpa, evitando propagação de filtros bidirecionais custosos.
---
## 🔗 Integração com Outras Skills
- Para automação de alertas e envio de relatórios do Power BI via e-mail/Teams, consulte a skill [power-automate](../power-automate/SKILL.md).
- Para configuração de identidades e RLS no Entra ID (Azure AD), consulte a skill [iam-access-azure](../../security/cloud-iam/iam-access-azure/SKILL.md).
- Para integração de modelos de BI com data warehouses e bancos de dados SQL, consulte a skill [backend-developer](../../roles/backend-developer/SKILL.md).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!