O dilema clássico do Power BI: usar Import para ter performance máxima, mas os dados ficam desatualizados entre as atualizações. Ou usar DirectQuery para dados em tempo real, mas sofrer com lentidão em modelos complexos. Composite Models resolvem isso combinando os dois modos no mesmo modelo.
O que são Composite Models
Composite Models permitem que diferentes tabelas do mesmo modelo usem modos de armazenamento diferentes:
- Import: dados copiados para o modelo — rápido, mas atualiza por agendamento
- DirectQuery: consulta ao vivo na fonte — sempre atualizado, mas mais lento
- Dual: a tabela existe tanto no modo Import quanto no DirectQuery — o Power BI decide qual usar dependendo do contexto da consulta
O cenário clássico de uso
Tabelas de dimensão (Clientes, Produtos, Regiões, Calendário) mudam raramente — coloque em Import. Tabelas de fatos transacionais que precisam de dados em tempo real (pedidos do dia, estoque atual) — coloque em DirectQuery. O modelo usa as dimensões em cache (rápidas) para filtrar a consulta DirectQuery (em tempo real).
Configurando o modo de armazenamento
Na visão Modelo, clique com o botão direito em uma tabela → Propriedades → Modo de armazenamento. Selecione Import, DirectQuery ou Dual.
Quando você muda uma tabela de Import para DirectQuery, o Power BI avisa que essa operação pode não ser reversível (dados em cache são descartados).
Aggregations: DirectQuery com cache de agregados
Aggregations são uma extensão de Composite Models que cria uma tabela de resumo (Import) sobre uma tabela de detalhes (DirectQuery). Consultas que se satisfazem com o resumo usam a tabela Import; consultas que precisam de granularidade vão ao DirectQuery.
Exemplo: tabela de fatos com 500 milhões de linhas em DirectQuery + tabela de agregado mensal por produto com 50.000 linhas em Import. 95% das consultas do dashboard usarão o agregado; apenas drill-downs vão ao DirectQuery.
Limitações de Composite Models
- Nem todas as fontes DirectQuery suportam todos os recursos
- RLS se torna mais complexo — precisa ser aplicado corretamente em ambas as camadas
- Algumas funções DAX têm comportamento diferente em tabelas DirectQuery
- O desempenho depende da capacidade da fonte DirectQuery
Perguntas frequentes
Composite Models requerem Power BI Premium?
Não para criar e usar localmente no Desktop. Para publicar no Service e usar com atualização automática, algumas combinações de fontes requerem Premium. Verifique a documentação da Microsoft para sua combinação específica de fontes.
Posso conectar a dois bancos SQL Server diferentes no mesmo Composite Model?
Sim. Esse é um dos casos de uso mais comuns — unir dados de diferentes bancos ou servidores sem precisar de um ETL intermediário.