DP-600: como dominar DirectQuery em Power BI/Fabric
Vou ensinar a competência de configurar e optimizar DirectQuery em Power BI/Fabric — uma habilidade que surge nas áreas de Implementar e gerir modelos semânticos e Preparar os dados. DirectQuery é crucial no exame e na prática quando precisas de relatórios em tempo real ou tens volumes de dados que não convém importar.
O que precisas de saber
DirectQuery é um modo de conectividade onde o modelo semântico (dataset) não importa os dados para o motor local; em vez disso, as consultas são traduzidas e enviadas à fonte de dados em cada interação. Isto permite relatórios com latência mais baixa na actualização dos dados, mas impõe restrições: o desempenho depende da fonte, as transformações são limitadas e algumas funções DAX/armazenamento estão indisponíveis ou comportam-se de forma distinta.
Exemplo simples: um relatório em Power BI ligado a uma tabela de vendas num Synapse SQL Server via DirectQuery. Quando o utilizador aplica um filtro de data, o Power BI converte essa selecção numa query SQL contra a tabela no Synapse e recupera apenas os registos necessários.
Como funciona
Passos-chave e componentes a compreender:
- Conexão e modo: ao criar uma ligação escolhes Import, DirectQuery ou Composite. DirectQuery mantém os dados na fonte.
- Query folding: no Power Query, operações que podem ser traduzidas para a fonte são enviadas como partes da query. Em DirectQuery, maximizar o query folding é crítico para a performance.
- Cache e tempo de vida: Power BI/Fabric pode usar cache de resultados (query cache), mas o modelo é orientado por chamadas à fonte. Configurar tempos de cache ajuda a equilibrar frescura e carga.
- Limitações de transformação: transformações muito complexas podem não ser suportadas; sempre que possível, empurra a lógica para a fonte (views/stored procedures).
- Segurança: row-level security (RLS) em DirectQuery pode ser aplicado no modelo, mas considera também a segurança na fonte de dados.
Na prática
Exemplo prático passo a passo (cenário: Power BI Desktop ligado a Azure SQL Database em DirectQuery).
1. No Power BI Desktop, Get data → Azure → Azure SQL Database.
2. Insere servidor e base de dados; escolhe DirectQuery em vez de Import.
3. No Power Query Editor, evita passos que impedem o query folding (por ex., operações que usam funções customizadas).
4. Cria views na base de dados para consolidar lógica complexa; liga o Power BI a essas views.
5. Publica para Power BI Service / Fabric. Configura ligações de gateway se a fonte for on-premises.
6. No serviço, valida o Performance Analyzer para ver as queries geradas e medir a latência.
7. Activa o query cache e configura o tempo de vida do cache se necessário (no Fabric/Power BI admin settings) para reduzir chamadas repetidas.
Dicas de optimização concretas:
- Projecta índices na fonte para suportar as queries mais comuns (filtros e joins).
- Usa agregações no modelo semântico para responder rapidamente a queries de resumo, enquanto os detalhes ficam em DirectQuery (modelo Composite).
- Evita medidas DAX que forcem scans completos; prefere colunas indexadas e medidas por agregação simples na fonte.
- Monitoriza queries com o Performance Analyzer e com ferramentas de monitorização da base de dados para identificar gargalos.
Erros comuns
1) Ignorar o impacto do query folding: aplicar passos no Power Query que quebram o folding e obrigam a operações locais ou queries pesadas na fonte. Isso degrada a performance.
2) Usar DirectQuery sem considerar índices e modelos na fonte: sem índices adequados, cada interação traduz-se numa operação de scanning cara.
3) Esperar funcionalidade total do modo Import: certas funções DAX ou optimizações do Vertipaq não estão disponíveis; não transformes mentalmente um DirectQuery num dataset importado.
Como praticar
Pratica com cenários reais em ambientes controlados: configura um Azure SQL Database com dados de teste e cria modelos DirectQuery, depois usa o Performance Analyzer e as vistas de monitorização do SQL para medir o impacto. Para preparar o exame DP-600, utiliza o Practice Assessment OFICIAL e gratuito da Microsoft para aferir conhecimentos práticos — o Practice Assessment e a study guide da Microsoft são gratuitos e recomendados como complemento. Consulta também a documentação oficial sobre DirectQuery, Composite models e query folding na documentação Microsoft Learn.
Em resumo
- DirectQuery permite relatórios com dados em tempo real, mantendo os dados na fonte em vez de os importar.
- Query folding e optimização na fonte são essenciais para uma boa performance.
- Usa Composite models e agregações para equilibrar latência e capacidade analítica.
- Pratica com ferramentas de monitorização e o Practice Assessment oficial da Microsoft para validar competências.