Visão geral da avaliação da consulta e da dobragem de consultas no Power Query

Power Query avalia uma consulta M para determinar os dados e as transformações necessárias para o resultado. Durante a avaliação, o query folding tenta traduzir transformações compatíveis em operações que uma fonte de dados pode executar. Transformações que não podem ser dobradas são executadas no mecanismo de Power Query.

O que é um script Power Query M?

Um script M, também chamado de código M, é o conjunto de funções e sintaxe da linguagem da fórmula M Power Query que Power Query avalia para produzir um resultado de consulta. Cada consulta tem um script M, se Power Query o cria, você o escreve no editor avançado ou insere-o em uma consulta em branco.

Dica

Você pode pensar no script M como uma receita que descreve como preparar seus dados.

A maneira mais comum de criar um script M é usando o editor de Power Query. Por exemplo, quando você se conecta a uma fonte de dados, como um banco de dados SQL Server, observe no lado direito da tela que há uma seção chamada etapas aplicadas. Esta seção mostra todas as etapas ou transformações usadas em sua consulta. Nesse sentido, o editor de Power Query serve como uma interface para ajudá-lo a criar o script M apropriado para as transformações desejadas e garante que o código usado seja válido.

Observação

O script M é usado no editor de Power Query para:

  • Mostrar a consulta como uma série de etapas e permitir que você crie ou modifique as etapas.
  • Mostrar uma exibição de diagrama.

Captura de tela das etapas aplicadas e da exibição de visualização de dados.

Neste SQL Server exemplo, o painel Etapas Aplicadas contém as seguintes etapas:

  • Origem: faz a conexão com a fonte de dados. Nesse caso, é uma conexão com um banco de dados SQL Server.
  • Navegação: navega até uma tabela específica no banco de dados.
  • Removidas outras colunas: seleciona quais colunas da tabela manter.
  • Linhas classificadas: classifica a tabela usando uma ou mais colunas.
  • Manter as linhas superiores: filtra a tabela para manter apenas algumas linhas do início da tabela.

Exibir e editar um script M no Power Query

Esse conjunto de nomes das etapas é uma maneira amigável de exibir o script M que o Power Query criou para você. Você pode exibir o script M completo de várias maneiras. No Power Query, selecione Editor Avançado na guia Exibir. Você também pode selecionar Editor Avançado no grupo Consulta na guia Página Inicial. Em algumas versões do Power Query, você também pode alterar a exibição da barra de fórmulas para mostrar o script da consulta acessando a guia Exibir e, no grupo Layout, selecionando Exibição de script>Script da consulta.

Captura de tela contendo o script M completo e os nomes correspondentes das etapas aplicadas.

A maioria dos nomes que você encontra no painel Etapas aplicadas também são usados da mesma forma no script M. Você nomeia as etapas de uma consulta usando identificadores no idioma M. Às vezes, caracteres extras encapsulam nomes de etapas em M, mas esses caracteres não são exibidos nas etapas aplicadas. Um exemplo é #"Kept top rows", que é categorizado como um identificador entre aspas devido a esses caracteres extras. Um identificador entre aspas permite que qualquer sequência de zero ou mais caracteres Unicode seja usada como um identificador, incluindo palavras-chave, espaço em branco, comentários, operadores e pontuadores. Para saber mais sobre identificadores na linguagem M, consulte a estrutura lexical.

Todas as alterações feitas na consulta por meio do editor de Power Query atualizam automaticamente o script M para sua consulta. Por exemplo, se você alterar o nome da etapa Linhas superiores mantidas para 20 primeiras linhas, o nome também muda no modo de exibição do script da consulta.

Captura de tela do nome da etapa aplicada alterado para 20 primeiras linhas, que também atualiza o script M.

Embora seja recomendável usar o editor de Power Query para criar todo ou a maior parte do script M para você, você pode adicionar ou modificar manualmente partes do script M. Para saber mais, consulte a referência da linguagem M.

Neste artigo, o script M refere-se ao código Power Query M em uma consulta, que você pode acessar por meio do editor avançado ou da exibição de script de consulta na barra de fórmulas.

Como Power Query avalia uma consulta M

Power Query avalia um script M determinando a saída necessária e como produzi-lo. Para consultas que usam uma fonte de dados externa, a avaliação inclui a solicitação de dados da origem, o processamento de todas as transformações executadas no mecanismo de Power Query e o carregamento do resultado para um destino.

O diagrama a seguir explora o processo que ocorre quando uma consulta é avaliada em Power Query.

Diagrama que mostra o caminho de uma avaliação de consulta do script M para a saída final.

  1. O script M, encontrado dentro do editor avançado, é enviado para o mecanismo de Power Query. Outras informações importantes também estão incluídas, como credenciais e níveis de privacidade da fonte de dados.
  2. Power Query determina quais dados precisam ser extraídos da fonte de dados e envia uma solicitação à fonte de dados.
  3. A fonte de dados responde à solicitação de Power Query transferindo os dados solicitados para Power Query.
  4. Power Query recebe os dados de entrada da fonte de dados e faz transformações usando o mecanismo de Power Query, se necessário.
  5. Power Query carrega o resultado transformado para um destino.

Observação

Esse fluxo mostra uma consulta que lê de um banco de dados SQL Server. Para uma consulta sem uma fonte de dados externa, Power Query ainda avalia o script M e produz um resultado, mas os estágios de solicitação e transferência da fonte de dados não se aplicam.

Como o dobramento de consulta otimiza a avaliação da consulta

Quando Power Query lê o script M, ele executa o script por meio de um processo de otimização para avaliar sua consulta com mais eficiência. Nesse processo, ele determina quais etapas (transformações) de sua consulta podem ser descarregadas para sua fonte de dados. Ele também determina quais outras etapas precisam ser avaliadas usando o mecanismo de Power Query.

Esse processo de otimização é chamado de query folding. Query folding traduz transformações M com suporte em operações que a fonte de dados pode executar. Power Query tenta executar o máximo possível da consulta na fonte de dados e avalia as transformações restantes no mecanismo de Power Query.

Importante

Todas as regras da linguagem de fórmula Power Query M (também conhecida como linguagem M) são seguidas. Mais notavelmente, a avaliação lenta desempenha um papel importante durante o processo de otimização. Nesse processo, Power Query entende quais transformações específicas da consulta precisam ser avaliadas. Power Query também entende quais outras transformações não precisam ser avaliadas porque elas não são necessárias na saída da consulta.

Além disso, quando várias fontes estão envolvidas, o nível de privacidade de dados de cada fonte de dados é levado em consideração ao avaliar a consulta. Mais informações: Nos bastidores do Firewall de Privacidade de Dados

O diagrama a seguir demonstra as etapas que ocorrem nesse processo de otimização.

Diagrama que mostra o processo de otimização durante a avaliação da consulta.

  1. O script M, encontrado dentro do editor avançado, é enviado para o mecanismo de Power Query. Outras informações importantes também são fornecidas, como credenciais e níveis de privacidade da fonte de dados.
  2. O mecanismo de dobragem de consulta envia solicitações de metadados para determinar os recursos da fonte de dados, esquemas de tabela, relações entre tabelas na fonte de dados e outros metadados.
  3. Com base nos metadados que recebe, o mecanismo de query folding determina quais informações serão extraídas da fonte de dados e quais transformações devem ser realizadas dentro do mecanismo do Power Query. Ele envia instruções para dois outros componentes que recuperam dados da fonte de dados e transformam os dados de entrada no mecanismo de Power Query, se necessário.
  4. Depois que os componentes internos do Power Query receberem as instruções, Power Query enviará uma solicitação à fonte de dados usando uma consulta de fonte de dados.
  5. A fonte de dados recebe a solicitação de Power Query e transfere os dados para o mecanismo de Power Query.
  6. Depois que os dados estão no Power Query, o mecanismo de transformação do Power Query (também conhecido como mecanismo de “mashup”) realiza as transformações que não puderam ser delegadas novamente nem transferidas para a fonte de dados.
  7. Power Query carrega o resultado transformado para um destino.

Observação

Dependendo das transformações e da fonte de dados usadas no script M, Power Query determina se os dados de entrada devem ser transmitidos ou armazenados em buffer.

O que a dobragem de consulta faz em Power Query

O objetivo do "query folding" é transferir ou deslocar a maior parte da avaliação de uma consulta para uma fonte de dados que consiga executar as transformações da sua consulta.

O mecanismo de dobragem de consulta atinge essa meta traduzindo seu script M para um idioma que sua fonte de dados pode interpretar e executar. Em seguida, ele envia a avaliação para sua fonte de dados e envia o resultado dessa avaliação para Power Query.

Essa operação geralmente fornece uma execução de consulta mais rápida do que extrair todos os dados necessários da fonte de dados e executar todas as transformações necessárias no mecanismo de Power Query.

Quando você usa o get data experience, o Power Query guia você no processo que permite a conexão com a fonte de dados. Ao fazer isso, o Power Query usa uma série de funções na linguagem M categorizadas como funções de acesso a dados. Essas funções específicas usam mecanismos e protocolos para se conectar à fonte de dados usando uma linguagem que sua fonte de dados pode entender.

Para transformações realizadas após a função da fonte de dados, o mecanismo de dobramento de consulta verifica se pode delegá-las à fonte de dados, em vez de processá-las no mecanismo do Power Query.

Importante

Funções de fonte de dados, normalmente mostradas como a etapa de origem de uma consulta, consultam dados na fonte de dados em seu idioma nativo. Para transformações após a função da fonte de dados, o Power Query tenta aplicar o dobramento de consulta somente quando o conector e as transformações oferecem suporte a isso. O mecanismo pode traduzir e combinar transformações com suporte em uma única consulta de fonte de dados.

Consultar resultados de dobragem no Power Query

Dependendo de como a consulta está estruturada, pode haver três resultados possíveis para o mecanismo de dobragem de consultas:

Resultado do dobramento de consulta Processamento na fonte de dados Processamento no mecanismo de Power Query
Dobramento de consulta completo A fonte de dados processa todas as transformações de consulta. O processamento mínimo ocorre no mecanismo de Power Query.
Dobramento parcial de consulta A fonte de dados processa as transformações que o Power Query consegue traduzir para a linguagem de consulta nativa. O mecanismo de Power Query processa as transformações restantes.
Sem dobramento de consulta A fonte de dados retorna os dados de origem solicitados sem processar transformações de consulta. O mecanismo Power Query processa todas as transformações necessárias.

Fontes de dados que oferecem suporte ao dobramento de consulta

O suporte à dobra de consulta depende do conector, da fonte de dados e das transformações na consulta. Conectores para fontes de dados estruturadas com recursos de processamento de consulta, como SQL Server e OData Feed, geralmente dão suporte à dobragem de consulta. Fontes sem um mecanismo de consulta, como CSV e arquivos Excel, não dão suporte à dobragem de consulta.

Durante a otimização, o mecanismo de Power Query pode reordenar as etapas de consulta. Usar uma fonte de dados com mais recursos de processamento e recursos de dobragem de consulta pode reduzir os tempos de carga de consulta porque o processamento ocorre na fonte de dados em vez de no mecanismo de Power Query.

Verificar o dobramento de consulta no Power Query Online

No Power Query Online, use indicadores de dobragem de consulta ao lado das etapas aplicadas para identificar quais etapas serão dobradas. Você também pode usar o plano de consulta para ver quais operações são executadas na fonte de dados e quais operações são executadas no mecanismo de Power Query. Esses recursos estão disponíveis apenas no Power Query Online.

Quando disponível, use Exibir Consulta Nativa ou Exibir consulta de fonte de dados para inspecionar a solicitação que Power Query envia à fonte de dados. A disponibilidade depende do conector.