Diretrizes de dobragem de consultas no Power BI Desktop

Este artigo se destina a modeladores de dados que estão desenvolvendo modelos no Power BI Desktop. Ele fornece diretrizes de melhor prática sobre quando e como obter a dobragem de consultas do Power Query.

A dobragem de consultas é a capacidade de uma consulta do Power Query gerar uma única instrução de consulta que recupera e transforma dados de origem. Para obter mais informações, confira dobragem de consultas do Power Query.

Diretrizes

As diretrizes de dobragem de consultas diferem com base no modo de modelo.

Para uma tabela de modo de armazenamento DirectQuery ou Duplo, a consulta de Power Query deve obter a dobragem de consultas.

Para uma tabela de importação, pode ser possível obter a dobragem de consultas. Quando a consulta é baseada em uma fonte relacional e uma única instrução SELECT pode ser construída, você obtém o melhor desempenho de atualização de dados garantindo que a dobragem de consultas ocorra. Se o mecanismo de mashup do Power Query ainda for necessário para processar transformações, você deverá se esforçar para minimizar o trabalho necessário, especialmente para modelos semânticos grandes (anteriormente conhecidos como conjuntos de dados).

A lista com marcadores a seguir apresenta diretrizes específicas.

  • Delegue o máximo de processamento possível à fonte de dados: quando todas as etapas de uma consulta do Power Query não puderem ser dobradas, descubra qual etapa está impedindo a dobragem de consultas. Quando possível, mova as etapas posteriores mais para o início da sequência para que possam ser fatoradas na dobragem de consultas. Observe que o mecanismo de mashup do Power Query pode ser inteligente o suficiente para reordenar as etapas de consulta ao gerar a consulta de origem.

    Para uma fonte de dados relacional, se a etapa que impede que a dobragem de consultas seja alcançada em uma única instrução SELECT ou na lógica de um procedimento armazenado, considere usar uma consulta SQL nativa, conforme descrito a seguir.

  • Use uma consulta SQL nativa: quando uma consulta do Power Query recupera dados de uma fonte relacional, é possível para algumas fontes usar uma consulta SQL nativa. A consulta pode, na verdade, ser qualquer instrução válida, incluindo uma execução de procedimento armazenado. Se a instrução produzir vários conjuntos de resultados, somente o primeiro será retornado. Os parâmetros podem ser declarados na instrução, e recomendamos que você use a função Value.NativeQuery M. Essa função foi projetada para passar valores de parâmetro de maneira segura e conveniente. É importante entender que o mecanismo de mashup do Power Query não pode dobrar etapas de consulta posteriores e, portanto, você deve incluir toda a lógica de transformação (ou tanto dela quanto possível) na instrução de consulta nativa.

    Há duas considerações importantes que você precisa se lembrar ao usar consultas SQL nativas:

    • Para uma tabela de modelo DirectQuery, a consulta deve ser uma instrução SELECT e não pode usar CTEs (Expressões de Tabela Comuns) ou um procedimento armazenado.
    • A atualização incremental não pode usar uma consulta SQL nativa. Assim, ela forçaria o mecanismo de mashup do Power Query a recuperar todas as linhas de origem e, em seguida, aplicar filtros para determinar as alterações incrementais.

    Importante

    Uma consulta SQL nativa pode potencialmente fazer mais do que recuperar dados. Qualquer instrução válida pode ser executada (e, possivelmente, várias vezes), incluindo uma que modifica ou exclui dados. É importante que você aplique o princípio de privilégios mínimos para garantir que a conta usada para acessar o banco de dados tenha permissão de leitura apenas para os dados necessários.

  • Preparar e transformar dados na fonte: quando você identifica que determinadas etapas da consulta do Power Query não podem ser dobradas, pode ser possível aplicar as transformações na fonte de dados. As transformações podem ser obtidas escrevendo-se um modo de exibição de banco de dados que transforma de maneira lógica os dados de origem. Ou ainda preparando e materializando os dados fisicamente, antes do Power BI consultá-los. Um data warehouse relacional é um excelente exemplo de dados preparados, geralmente consistindo em fontes previamente integradas de dados organizacionais.

Para obter mais informações sobre este artigo, confira os seguintes recursos: