Otimizar modelos DirectQuery com armazenamento ao nível da tabela
DirectQuery é uma forma de introduzir dados Power BI Desktop. O método DirectQuery envolve a ligação direta aos dados no seu repositório de origem a partir do interior Power BI Desktop. É uma alternativa à importação de dados para Power BI Desktop.
Quando se utiliza o método DirectQuery, a experiência geral do utilizador depende muito do desempenho da origem de dados subjacente. Os tempos de consulta lentos resposta conduzem a uma experiência negativa para o utilizador e, no pior dos casos, as consultas podem esgotar-se. Além disso, o número de utilizadores que estão a abrir os relatórios em qualquer altura terá impacto na carga que é colocada na origem de dados. Por exemplo, se o seu relatório tiver 20 elementos visuais e 10 pessoas estiverem a utilizar o relatório, existirão 200 consultas ou mais na origem de dados, porque cada elemento visual emitirá uma ou mais consultas.
Infelizmente, o desempenho do seu modelo Power BI não será apenas afetado pelo desempenho da origem de dados subjacente, mas também por outros factores incontroláveis, tais como
Latência da rede; as redes mais rápidas devolvem os dados mais rapidamente.
O desempenho do servidor da origem de dados e quantas outras cargas de trabalho estão nesse servidor. Por exemplo, considere as implicações de uma atualização do servidor enquanto centenas de pessoas estão a utilizar o mesmo servidor por diferentes razões.
Por conseguinte, a utilização de DirectQuery representa um risco para a qualidade do desempenho do seu modelo. Para otimizar o desempenho nesta situação, é necessário ter controlo ou acesso à base de dados de origem.
Para obter informações mais detalhadas, consulte DirectQuery model guidance in Power BI Desktop.
Implicações da utilização de DirectQuery
É uma boa prática importar dados para Power BI Desktop, mas a sua organização poderá ter de utilizar o modo de conetividade de dados DirectQuery devido a uma das seguintes razões (vantagens do DirectQuery):
É adequado nos casos em que os dados mudam com frequência e é necessário um relatório quase em tempo real.
Pode tratar grandes volumes de dados sem necessidade de pré-agregação.
Aplica restrições à soberania dos dados para cumprir os requisitos legais.
Pode ser utilizado com uma origem de dados multidimensional que contenha medidas como SAP Business Warehouse (BW).
Se a sua organização precisar de utilizar o DirectQuery, deve compreender claramente o seu comportamento em Power BI Desktop e estar ciente das suas limitações. Estará então em boa posição para tomar medidas para otimizar o modelo DirectQuery tanto quanto possível.
Comportamento das ligações DirectQuery
Quando utiliza DirectQuery para se ligar a dados em Power BI Desktop, essa ligação comporta-se da seguinte forma:
Quando utilizar inicialmente a funcionalidade Get Data em Power BI Desktop, seleccionará a fonte. Se se ligar a uma fonte relacional, pode selecionar um conjunto de tabelas e cada uma delas definirá uma consulta que devolve logicamente um conjunto de dados. Se for selecionada uma fonte multidimensional, como o SAP BW, só é possível selecionar a fonte.
Quando se carregam os dados, não são importados dados para Power BI Desktop, apenas é carregado o esquema. Quando constrói um visual em Power BI Desktop, as consultas são enviadas para a fonte subjacente para obter os dados necessários. O tempo que demora a atualizar o visual depende do desempenho da origem de dados subjacente.
Se forem feitas alterações aos dados subjacentes, estas não se reflectirão imediatamente nos visuais existentes em Power BI devido ao armazenamento em cache. É necessário efetuar uma atualização para ver essas alterações. As consultas necessárias estão presentes para cada imagem e as imagens são actualizadas em conformidade.
Quando publicar o relatório no serviço Power BI , isto resultará num modelo semântico no serviço Power BI , tal como na importação. No entanto, esse modelo semântico não inclui dados.
Quando se abre um relatório existente no serviço Power BI ou se constrói um novo, a fonte subjacente é novamente consultada para obter os dados necessários. Dependendo da localização da fonte original, poderá ter de configurar um gateway de dados no local.
Pode fixar elementos visuais ou páginas inteiras de relatórios como mosaicos do painel. Os mosaicos são actualizados automaticamente de acordo com um calendário, por exemplo, de hora a hora. Pode controlar a frequência desta atualização de acordo com as suas necessidades. Quando abre um dashboard, os mosaicos reflectem os dados no momento da última atualização e podem não incluir as últimas alterações efectuadas na origem de dados subjacente. Pode sempre atualizar um painel aberto para garantir que está atualizado.
Limitações das ligações DirectQuery
A utilização de DirectQuery pode ter implicações negativas. As limitações variam, dependendo da origem de dados específica que está a ser utilizada. Deve ter em consideração os seguintes pontos:
Desempenho - Como já foi referido, a experiência geral do utilizador depende em grande medida do desempenho da origem de dados subjacente.
Segurança - Se utilizar várias origens de dados num modelo DirectQuery, é importante compreender como os dados se movem entre as origens de dados subjacentes e as implicações de segurança associadas. Deve também identificar se as regras de segurança são aplicáveis aos dados na sua fonte subjacente porque, em Power BI, todos os utilizadores podem ver esses dados.
Transformação de dados - Em comparação com os dados importados, os dados provenientes do DirectQuery têm limitações no que diz respeito à aplicação de técnicas de transformação de dados no Power Query Editor. Por exemplo, se se ligar a uma fonte OLAP, como o SAP BW, não é possível efetuar quaisquer transformações; todo o modelo externo é retirado da origem de dados. Se pretender efetuar quaisquer transformações nos dados, terá de o fazer na origem de dados subjacente.
Modelação - Algumas das capacidades de modelação que tem com dados importados não estão disponíveis, ou são limitadas, quando utiliza o DirectQuery.
Relatórios -- Quase todas as capacidades de relatórios que tem com dados importados são também suportadas para modelos DirectQuery, desde que a fonte subjacente ofereça um nível de desempenho adequado. No entanto, quando o relatório é publicado no serviço Power BI , as funcionalidades Quick Insights e Q&A não são suportadas. Além disso, a utilização da funcionalidade Explorar no Excel resultará provavelmente num desempenho mais fraco.
Para obter informações mais detalhadas sobre as limitações da utilização do DirectQuery, consulte Implicações da utilização do DirectQuery.
Agora que tem uma breve compreensão de como funciona o DirectQuery e das limitações que apresenta, pode tomar medidas para melhorar o desempenho.
Otimizar o desempenho
Continuando com o cenário Tailwind Traders, durante a sua revisão do modelo semântico, descobre que a consulta utilizou DirectQuery para ligar Power BI Desktop aos dados de origem. Esta utilização de DirectQuery é a razão pela qual os utilizadores estão a ter um fraco desempenho dos relatórios. Está a demorar demasiado tempo a carregar as páginas do relatório e as tabelas não são actualizadas com a rapidez suficiente quando são feitas determinadas seleções. É necessário tomar medidas para otimizar o desempenho do modelo DirectQuery.
Pode examinar as consultas que estão a ser enviadas para a fonte subjacente e tentar identificar a razão do fraco desempenho da consulta. Em seguida, é possível fazer alterações em Power BI Desktop e na origem de dados subjacente para otimizar o desempenho geral.
Otimizar os dados em Power BI Desktop
Depois de ter optimizado a origem de dados tanto quanto possível, pode tomar outras medidas em Power BI Desktop utilizando o analisador de desempenho , onde pode isolar as consultas para validar os planos de consulta.
É possível analisar a duração das consultas que estão a ser enviadas para a fonte subjacente para identificar as consultas que estão a demorar muito tempo a carregar. Por outras palavras, é possível identificar os pontos de estrangulamento.
Não é necessário utilizar uma abordagem especial ao otimizar um modelo DirectQuery; pode aplicar as mesmas técnicas de otimização que utilizou nos dados importados para afinar os dados da fonte DirectQuery. Por exemplo, é possível reduzir o número de imagens na página do relatório ou reduzir o número de campos utilizados numa imagem. Também é possível remover colunas e linhas desnecessárias.
Para obter orientações mais pormenorizadas sobre como otimizar uma consulta DirectQuery, consulte: Orientações sobre o modelo DirectQuery em Power BI Desktop e Orientações para utilizar DirectQuery com êxito.
Otimizar a origem de dados subjacente (base de dados ligada)
A sua primeira paragem é a origem de dados. É necessário afinar a base de dados de origem tanto quanto possível, porque tudo o que fizer para melhorar o desempenho dessa base de dados de origem irá, por sua vez, melhorar o Power BI DirectQuery. As ações que tomar na base de dados serão as mais benéficas.
Considere a utilização das seguintes práticas de base de dados padrão que se aplicam à maioria das situações:
Evite a utilização de colunas calculadas complexas porque a expressão de cálculo será incorporada nas consultas de origem. É mais eficiente empurrar a expressão de volta para a fonte porque evita o empurrão para baixo. Também pode considerar a adição de colunas de chaves substitutas a tabelas de tipo dimensão.
Rever os índices e verificar se a indexação atual está correcta. Se for necessário criar novos índices, certifique-se de que são adequados.
Consulte os documentos de orientação da sua origem de dados e aplique as suas recomendações de desempenho.
Personalizar as opções de redução da consulta
Power BI Desktop dá-lhe a opção de enviar menos consultas e de desativar certas interacções que resultarão numa má experiência se as consultas resultantes demorarem muito tempo a ser executadas. A aplicação destas opções impede que as consultas atinjam continuamente a origem de dados, o que deverá melhorar o desempenho.
Neste exemplo, edita as definições predefinidas para aplicar as opções de redução de dados disponíveis ao seu modelo. Para aceder às definições, seleccione Ficheiro>Opções e definições>Opções, desloque-se para baixo na página e, em seguida, seleccione a opção Redução de consultas .
Estão disponíveis as seguintes opções de redução de consulta:
Reduzir o número de consultas enviadas por - Por defeito, todos os elementos visuais interagem com todos os outros elementos visuais. Selecionar esta caixa de verificação desactiva essa interação predefinida. Em seguida, pode escolher opcionalmente quais os elementos visuais que interagem entre si, utilizando a funcionalidade Editar interacções .
Slicers - Por predefinição, a opção Aplicar instantaneamente alterações ao slicer está selecionada. Para forçar os utilizadores do relatório a aplicarem manualmente as alterações às secções, seleccione a opção Adicionar um botão de aplicação a cada secção para aplicar as alterações quando estiver pronto .
Filtros - Por predefinição, a opção Aplicar instantaneamente alterações básicas aos filtros está selecionada. Para forçar os utilizadores do relatório a aplicar manualmente as alterações ao filtro, seleccione uma das opções alternativas:
Adicionar um botão de aplicação a todos os filtros básicos para aplicar alterações quando estiver pronto
Adicionar um único botão de aplicação ao painel de filtro para aplicar as alterações de uma só vez (pré-visualização)