Otimizar modelos do DirectQuery com armazenamento no nível da tabela

Concluído

DirectQuery é uma maneira de colocar dados no Power BI Desktop. O método DirectQuery envolve a conexão direta aos dados no repositório de origem dentro do Power BI Desktop. Trata-se de uma alternativa à importação de dados para o Power BI Desktop.

Captura de tela que mostra como usar a opção DirectQuery para obter dados.

Quando você usa o método DirectQuery, a experiência do usuário geral depende muito do desempenho da fonte de dados subjacente. Tempos de resposta de consulta lentos acarretarão uma experiência do usuário negativa e, nos piores cenários, as consultas podem atingir tempo limite. Além disso, o número de usuários que estão abrindo os relatórios a qualquer momento afetará a carga colocada sobre a fonte de dados. Por exemplo, se o relatório tiver 20 visuais e dez pessoas o estiverem usando, 200 consultas ou mais existirão na fonte de dados, pois cada visual emitirá uma ou mais consultas.

Infelizmente, o desempenho do modelo do Power BI não será afetado apenas pelo desempenho da fonte de dados subjacente, mas também por outros fatores incontroláveis, como:

  • Latência de rede: redes mais rápidas retornam dados mais rapidamente.

  • O desempenho do servidor da fonte de dados e quantas outras cargas de trabalho há nesse servidor. Por exemplo, leve em consideração as implicações de uma atualização do servidor acontecendo enquanto centenas de pessoas estão usando o mesmo servidor por motivos diferentes.

Por isso, o uso do DirectQuery oferece um risco à qualidade do desempenho do modelo. Para otimizar o desempenho nessa situação, você precisa ter controle sobre, ou acesso a, o banco de dados de origem.

Para obter informações mais detalhadas, consulte Diretrizes de modelo do DirectQuery no Power BI Desktop.

Implicações do uso do DirectQuery

Trata-se de uma melhor prática a fim de importar dados para o Power BI Desktop, mas a organização pode precisar usar o modo da conectividade de dados do DirectQuery por causa de um dos seguintes motivos (benefícios do DirectQuery):

  • Ele é indicado em casos nos quais os dados mudam com frequência e relatórios quase em tempo real são necessários.

  • Ele pode processar muitos dados sem a necessidade de pré-agregar.

  • Ele aplica restrições da soberania de dados para atender a requisitos legais.

  • Ele pode ser usado com uma fonte de dados multidimensional que contém medidas como SAP Business Warehouse (BW).

Se a organização precisar usar o DirectQuery, você deverá compreender claramente o comportamento dentro do Power BI Desktop e estar ciente das limitações. Assim, você estará em boas condições para otimizar o modelo do DirectQuery o máximo possível.

Comportamento das conexões do DirectQuery

Quando você usa o DirectQuery para se conectar aos dados no Power BI Desktop, essa conexão se comporta da seguinte maneira:

  • Ao usar inicialmente o recurso Obter Dados no Power BI Desktop, você selecionará a fonte. Se você se conectar a uma fonte relacional, poderá selecionar um conjunto de tabelas, e cada uma delas definirá uma consulta que retornará logicamente um conjunto de dados. Se selecionar uma fonte multidimensional, como SAP BW, você só poderá selecionar a fonte.

  • Quando você carrega os dados, nenhum dado é importado para o Power BI Desktop; somente o esquema é carregado. Quando você compila um visual dentro do Power BI Desktop, as consultas são enviadas para a fonte subjacente para recuperar os dados necessários. O tempo necessário para atualizar o visual depende do desempenho da fonte de dados subjacente.

  • Se alterações forem feitas nos dados subjacentes, elas não se refletirão imediatamente nos visuais existentes no Power BI por causa do cache. Você precisa realizar uma atualização para ver essas alterações. As consultas necessárias são apresentadas para cada visual, e os visuais são atualizados de acordo.

  • Quando você publicar o relatório no serviço do Power BI, ele resultará em um modelo semântico no serviço do Power BI, o mesmo da importação. No entanto, nenhum dado é incluído nesse modelo semântico.

  • Quando você abre um relatório existente no serviço do Power BI, ou compila um novo, a fonte subjacente é consultada novamente para recuperar os dados necessários. Dependendo da localização da fonte original, talvez seja necessário configurar um gateway de dados local.

  • Você pode fixar visuais, ou páginas de relatórios inteiras, como blocos de painel. Os blocos são atualizados automaticamente de acordo com uma agenda, por exemplo, a cada hora. Você pode controlar a frequência dessa atualização para atender aos requisitos. Quando você abre um painel, os blocos refletem os dados no momento da atualização mais recente e podem não incluir as alterações feitas mais recentemente na fonte de dados subjacente. Você sempre pode atualizar um painel aberto para garantir que ele esteja atualizado.

Limitações de conexões do DirectQuery

O uso do DirectQuery pode ter implicações negativas. As limitações variam de acordo com a fonte de dados específica usada. Você deve levar em consideração os seguintes aspectos:

  • Desempenho – conforme discutido anteriormente, a experiência geral do usuário depende muito do desempenho da fonte de dados subjacente.

  • Segurança – se você usar várias fontes de dados em um modelo do DirectQuery, será importante compreender como os dados se movem entre as fontes de dados subjacentes, além das implicações de segurança associadas. Você também deve identificar se regras de segurança são aplicáveis aos dados na fonte subjacente porque, no Power BI, cada usuário pode ver esses dados.

  • Transformação de dados – em comparação com dados importados, os dados originados do DirectQuery têm limitações quando o assunto é aplicação das técnicas da transformação de dados dentro do Editor do Power Query. Por exemplo, se você se conectar a uma fonte OLAP, como SAP BW, não poderá fazer nenhuma transformação; todo o modelo externo é obtido da fonte de dados. Se quiser fazer alguma transformações nos dados, você precisará fazer isso na fonte de dados subjacente.

  • Modelagem – alguns dos recursos de modelagem que você tem com dados importados não estão disponíveis ou ficam limitados quando você usa o DirectQuery.

  • Relatórios – quase todos os recursos de relatórios que você tem com dados importados também são compatíveis para modelos do DirectQuery, desde que a fonte subjacente ofereça um nível de desempenho indicado. No entanto, quando o relatório é publicado no serviço do Power BI, os recursos Insights Rápidos e Perguntas e Respostas não são compatíveis. Além disso, o uso do recurso Explorar no Excel provavelmente acarretará um desempenho mais insatisfatório.

Para obter informações mais detalhadas sobre as limitações do uso do DirectQuery, consulte Implicações de uso do DirectQuery.

Agora que tem um reconhecimento resumido de como o DirectQuery funciona e das limitações que ele representa, você pode tomar uma medida para melhorar o desempenho.

Otimizar o desempenho

Dando continuidade ao cenário Tailwind Traders, durante a revisão do modelo semântico, você descobre que a consulta usou o DirectQuery para conectar o Power BI Desktop aos dados de origem. Esse uso do DirectQuery é o motivo pelo qual os usuários estão sofrendo com um desempenho insatisfatório do relatório. Está demorando muito tempo para carregar as páginas do relatório, e as tabelas não estão sendo atualizadas com rapidez suficiente quando determinadas seleções são feitas. Você precisa tomar uma medida para otimizar o desempenho do modelo do DirectQuery.

Você pode examinar as consultas enviadas para a origem subjacente e tentar identificar o motivo do desempenho insatisfatório da consulta. Em seguida, você pode fazer alterações no Power BI Desktop e na fonte de dados subjacente para otimizar o desempenho geral.

Otimizar dados no Power BI Desktop

Quando tiver otimizado a fonte de dados o máximo possível, você ainda poderá tomar uma medida dentro do Power BI Desktop usando o Performance Analyzer, no qual pode isolar consultas para validar planos de consulta.

Você pode analisar a duração das consultas enviadas para a fonte subjacente a fim de identificar as consultas que estejam demorando muito para serem carregadas. Em outras palavras, você pode identificar onde há gargalos.

Você não precisa adotar uma abordagem especial ao otimizar um modelo do DirectQuery; você pode aplicar as mesmas técnicas de otimização usadas nos dados importados para ajustar os dados da fonte do DirectQuery. Por exemplo, você pode reduzir o número de visuais na página do relatório ou reduzir o número de campos usados em um visual. Você também pode remover colunas e linhas desnecessárias.

Para obter diretrizes mais detalhadas sobre como otimizar uma consulta do DirectQuery, consulte: Diretrizes do modelo do DirectQuery no Power BI Desktop e Diretrizes de uso do DirectQuery bem-sucedido.

Otimizar a fonte de dados subjacente (banco de dados conectado)

A primeira parada é a fonte de dados. Você precisa ajustar o banco de dados de origem o máximo possível, porque qualquer coisa que você fizer para melhorar o desempenho desse banco de dados de origem, por sua vez, vai melhorar o DirectQuery do Power BI. As ações executadas no banco de dados trarão os maiores benefícios.

Leve em consideração do uso das seguintes práticas do banco de dados padrão que se aplicam à maioria das situações:

  • Evite o uso de colunas calculadas complexas, pois a expressão de cálculo será inserida nas consultas de origem. É mais eficiente reenviar por push a expressão para a fonte, pois isso evita o retorno. Você também pode levar em consideração a adição das colunas de chave alternativa a tabelas do tipo de dimensão.

  • Examine os índices e verifique se a indexação atual está correta. Se você precisar criar índices, verifique se eles são indicados.

Consulte os documentos de diretrizes da fonte de dados e implemente as recomendações de desempenho.

Personalizar as opções de redução da consulta

O Power BI Desktop dá a você a opção de enviar menos consultas e desabilitar determinadas interações que acarretarão uma experiência insatisfatória se as consultas resultantes demorarem muito tempo para serem executadas. A aplicação dessas opções impede que as consultas atinjam continuamente a fonte de dados, o que deve melhorar o desempenho.

Neste exemplo, você edita as configurações padrão para aplicar as opções da redução de dados disponíveis ao modelo. Você acessa as configurações selecionando Arquivo>Opções e configurações>Opções, rolando a página para baixo e selecionando a opção Redução da consulta.

As seguintes opções de redução da consulta estão disponíveis:

  • Reduzir o número de consultas enviadas por – por padrão, todos os visuais interagem com todos os outros visuais. A marcação dessa caixa de seleção desabilita a interação padrão. Você também pode escolher quais visuais interagem entre si usando o recurso Editar interações.

  • Segmentações – por padrão, a opção Aplicar instantaneamente alterações feitas na segmentação permanece selecionada. Para forçar os usuários do relatório a aplicar as alterações feitas na segmentação manual, selecione a opção Adicionar um botão Aplicar a cada segmentação para aplicar alterações quando você estiver pronto.

  • Filtros – por padrão, a opção Aplicar instantaneamente alterações feitas no filtro básico permanece selecionada. Para forçar os usuários de relatório a aplicar manualmente alterações no filtro, selecione uma das opções alternativas:

    • Adicionar um botão Aplicar a todos os filtros básicos para aplicar alterações quando você estiver pronto

    • Adicionar um botão Aplicar ao painel de filtragem para aplicar alterações de uma só vez (versão preliminar)

Acessar configurações de redução da consulta