Partilhar via


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

Este artigo fornece uma visão geral básica de como as consultas M são processadas e transformadas em solicitações de fonte de dados.

Power Query M script

Qualquer consulta, seja criada por Power Query, escrita manualmente por si no editor avançado ou introduzida usando um documento em branco, consiste em funções e sintaxe da linguagem de fórmulas Power Query M. Esta consulta é interpretada e avaliada pelo motor Power Query para gerar os seus resultados. O script M serve como o conjunto de instruções necessárias para avaliar a consulta.

Sugestão

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

A forma mais comum de criar um script M é usando o editor Power Query. Por exemplo, quando se liga a uma fonte de dados, como uma base de dados SQL Server, note que, no lado direito do ecrã, há uma secção chamada etapas aplicadas. Esta seção exibe todas as etapas ou transformações usadas em sua consulta. Neste sentido, o editor Power Query serve como uma interface para o ajudar a criar o script M apropriado para as transformações que procura, garantindo que o código que utiliza é válido.

Observação

O script M é usado no editor Power Query para:

  • Exiba a consulta como uma série de etapas e permita a criação ou modificação de novas etapas.
  • Exiba uma vista de diagrama.

Captura de ecrã dos passos aplicados e da vista de pré-visualização de dados.

A imagem anterior enfatiza a seção de etapas aplicadas, que contém as seguintes etapas:

  • Fonte: Faz a conexão com a fonte de dados. Neste caso, é uma ligação a uma base de dados do SQL Server.
  • Navegação: Navega para uma tabela específica no banco de dados.
  • Outras colunas removidas: seleciona quais colunas da tabela devem ser mantidas.
  • Linhas classificadas: classifica a tabela usando uma ou mais colunas.
  • Linhas superiores mantidas: filtra a tabela para manter apenas algumas linhas da parte superior da tabela.

Este conjunto de nomes de passos é uma forma amigável de visualizar o script M que o Power Query criou para si. Há várias maneiras de visualizar o script M completo. No Power Query, pode selecionar Editor Avançado no separador View. Também pode selecionar Editor Avançado no grupo Query no separador Home. Em algumas versões do Power Query, também pode alterar a vista da barra de fórmulas para mostrar o script de consulta indo ao separador View e, a partir do grupo Layout, selecionar Script view>Query script.

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

A maioria dos nomes encontrados no painel Etapas aplicadas também está sendo usada, assim como no script M. As etapas de uma consulta são nomeadas usando algo chamado identificadores na linguagem M. Por vezes, caracteres extra são enrolados em torno dos nomes dos passos em M, mas estes caracteres não aparecem nos passos aplicados. Um exemplo é #"Kept top rows", que é categorizado como um identificador entre aspas devido a esses caracteres extras. Um identificador entre aspas pode ser usado para permitir que qualquer sequência de zero ou mais caracteres Unicode seja usada como identificador, incluindo palavras-chave, espaços em branco, comentários, operadores e pontuadores. Para saber mais sobre identificadores na linguagem M, consulte estrutura lexical.

Qualquer alteração que faça à sua consulta através do editor do Power Query atualiza automaticamente o script M para a sua consulta. Por exemplo, usando a imagem anterior como ponto de partida, se você alterar o nome da etapa Linhas superiores mantidas para as 20 principais linhas, essa alteração será atualizada automaticamente na visualização de script.

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

Embora recomendemos que utilize o editor Power Query para criar todo ou a maior parte do script M por si, pode adicionar ou modificar manualmente partes do seu script M. Para saber mais sobre a língua M, visite o sítio oficial de documentos da língua M.

Observação

O script M, também referido como código M, é um termo usado para qualquer código que utilize a linguagem Power Query M. No contexto deste artigo, M script refere-se também ao código encontrado dentro de uma consulta Power Query e acessível através da janela do editor avançado ou através do modo de script na barra de fórmulas.

Avaliação de consultas no Power Query

O diagrama seguinte explora o processo que ocorre quando uma consulta é avaliada no Power Query.

Diagrama que mostra o caminho de uma avaliação de consulta desde o script M até ao resultado final.

  1. O script M, encontrado dentro do editor avançado, é submetido ao motor Power Query. Outras informações importantes também estão incluídas, como credenciais e níveis de privacidade da fonte de dados.
  2. O Power Query determina que dados precisam de ser extraídos da fonte de dados e envia um pedido à fonte de dados.
  3. A fonte de dados responde ao pedido do Power Query transferindo os dados solicitados para o Power Query.
  4. O Power Query recebe os dados recebidos da fonte de dados e realiza quaisquer transformações usando o motor Power Query, se necessário.
  5. Os resultados derivados do ponto anterior são carregados para um destino.

Observação

Embora este exemplo mostre uma consulta com um Banco de Dados SQL como fonte de dados, o conceito se aplica a consultas com ou sem uma fonte de dados.

Quando o Power Query lê o seu script M, executa o script por um processo de otimização para avaliar a sua consulta de forma mais eficiente. Nesse processo, ele determina quais etapas (transformações) da sua consulta podem ser descarregadas para sua fonte de dados. Também determina quais os outros passos que precisam de ser avaliados usando o motor Power Query. Este processo de otimização chama-se query folding, onde Power Query tenta empurrar o máximo possível da execução para a fonte de dados para otimizar a execução da sua consulta.

Importante

Todas as regras da linguagem de fórmulas Power Query M (também conhecida como linguagem M) são seguidas. Mais notavelmente, a avaliação preguiçosa desempenha um papel importante durante o processo de otimização. Neste processo, o Power Query compreende que transformações específicas da sua consulta precisam de ser avaliadas. O Power Query também entende que outras transformações não precisam de ser avaliadas porque não são necessárias no resultado da tua 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 Data Privacy Firewall

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, é submetido ao motor 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 a fonte de dados para determinar os recursos da fonte de dados, esquemas de tabela, relações entre tabelas diferentes na fonte de dados e muito mais.
  3. Com base nos metadados recebidos, o mecanismo de dobramento de consultas determina que informação extrair da fonte de dados e que conjunto de transformações precisa ocorrer dentro do motor do Power Query. Envia as instruções para outros dois componentes que tratam de recuperar os dados da fonte de dados e transformar os dados recebidos no motor Power Query, se necessário.
  4. Assim que os componentes internos do Power Query recebem as instruções, o Power Query envia um pedido para a fonte de dados usando uma consulta de fonte de dados.
  5. A fonte de dados recebe o pedido do Power Query e transfere os dados para o motor Power Query.
  6. Uma vez que os dados estão no Power Query, o motor de transformação (também conhecido como motor mashup) realiza as transformações que não podiam ser revertidas ou delegadas para a fonte de dados.
  7. Os resultados derivados do ponto anterior são carregados para um destino.

Observação

Dependendo das transformações e da fonte de dados usadas no script M, o Power Query determina se transmite ou armazena os dados recebidos.

Visão geral do dobramento de consultas

O objetivo da dobragem de consulta é descarregar ou enviar o máximo da avaliação de uma consulta para uma fonte de dados que possa calcular as transformações da sua consulta.

O mecanismo de dobragem de consulta atinge esse objetivo traduzindo o script M para uma linguagem que sua fonte de dados possa interpretar e executar. Depois, envia a avaliação para a tua fonte de dados e envia o resultado dessa avaliação para o Power Query.

Esta operação frequentemente proporciona uma execução de consulta mais rápida do que extrair todos os dados necessários da sua fonte de dados e executar todas as transformações necessárias no motor Power Query.

Quando utiliza a experiência de obtenção de dados, o Power Query guia-o através do processo que, em última análise, lhe permite ligar-se à sua fonte de dados. Ao fazê-lo, Power Query utiliza 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 à sua fonte de dados usando uma linguagem que sua fonte de dados possa entender.

As etapas que seguem na sua consulta, no entanto, são as etapas ou transformações que o mecanismo de agregação de consulta tenta otimizar. Depois verifica se podem ser descarregados para a tua fonte de dados em vez de serem processados pelo motor Power Query.

Importante

Todas as funções da fonte de dados, geralmente mostradas como a etapa Origem de uma consulta, consultam os dados na fonte de dados em seu idioma nativo. O mecanismo de dobragem de consulta é utilizado em todas as transformações aplicadas à sua consulta após a função de fonte de dados. Podem ser traduzidos e combinados numa única consulta à fonte de dados ou em várias transformações que podem ser delegadas à fonte de dados.

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

  • Full query folding: Quando todas as suas transformações de consultas são enviadas de volta para a fonte de dados e ocorre um processamento mínimo no motor do Power Query.
  • Dobragem parcial da consulta: quando apenas algumas transformações em sua consulta, e não todas, podem ser enviadas de volta para a fonte de dados. Neste caso, apenas um subconjunto das suas transformações é feito na sua fonte de dados e o restante das suas transformações de consulta ocorre no motor Power Query.
  • Sem dobragem de consulta: quando a consulta contém transformações que não podem ser traduzidas para a linguagem de consulta nativa da fonte de dados, seja porque as transformações não são suportadas ou porque o conector não oferece suporte à dobragem de consulta. Neste caso, o Power Query obtém os dados brutos da sua fonte de dados e utiliza o motor Power Query para obter a saída pretendida, processando as transformações necessárias ao nível do motor Power Query.

Observação

O mecanismo de dobramento de consulta está principalmente disponível em conectores para fontes de dados estruturadas como, mas não se limitando a, SQL Server e OData Feed. Durante a fase de otimização, o mecanismo às vezes pode reordenar etapas na consulta.

Usar uma fonte de dados com mais recursos de processamento e capacidades de folding de consultas pode acelerar os tempos de carregamento das suas consultas, pois o processamento ocorre na fonte de dados e não no motor Power Query.