Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
No Power Query, pode definir uma consulta nativa e executá-la na sua fonte de dados. O artigo Importar dados de uma base de dados usando uma consulta nativa de base de dados explica como fazer este processo com múltiplas fontes de dados. Mas, ao usar o processo descrito nesse artigo, a sua consulta não tira partido de qualquer dobragem de consulta nos passos seguintes.
Este artigo apresenta um método alternativo para criar consultas nativas na sua fonte de dados usando a função Value.NativeQuery e manter o mecanismo de folding de consultas ativo para as etapas seguintes da sua consulta.
Observação
Recomendamos que leia a documentação sobre query folding e os indicadores de query folding para compreender melhor os conceitos utilizados ao longo deste artigo.
Conectores de dados suportados
O método descrito nas secções seguintes aplica-se aos seguintes conectores de dados:
- Amazon Redshift
- Dataverse(quando se utiliza computação melhorada)
- Google BigQuery
- PostgreSQL
- SAP HANA
- Snowflake
- Servidor SQL
Conectar ao alvo desde a fonte de dados
Observação
Para mostrar este processo, este artigo utiliza o conector SQL Server e a base de dados de exemplo AdventureWorks2019. A experiência pode variar de conector para conector, mas este artigo mostra os fundamentos sobre como ativar capacidades de folding de consultas em vez de consultas nativas para os conectores suportados.
Ao fazer a ligação à fonte de dados, é importante que se conecte ao nó ou nível onde pretende executar a sua consulta de nível nativo. No exemplo deste artigo, esse nó é o nível da base de dados dentro do servidor.
Depois de definir as definições de ligação e fornecer as credenciais da sua ligação, abre-se o diálogo de navegação da sua fonte de dados. O diálogo de navegação contém todos os objetos disponíveis a que pode ligar-se.
Desta lista, precisa de selecionar o objeto onde a consulta nativa é executada (também conhecido como destino). Neste exemplo, esse objeto é o nível da base de dados.
Na janela do navegador no Power Query, selecione e mantenha pressionado (ou clique com o botão direito) no nó da base de dados na janela do navegador e selecione a opção Transformar Dados . Ao selecionar esta opção, cria-se uma nova consulta da vista geral da sua base de dados, que é o alvo de que precisa para executar a sua consulta nativa.
Quando a sua consulta chega ao editor Power Query, apenas o passo Source deve aparecer no painel de passos aplicados. Este passo contém uma tabela com todos os objetos disponíveis na sua base de dados, semelhante à forma como eram exibidos na janela do Navegador.
Use a função Value.NativeQuery
O objetivo deste processo é executar o seguinte código SQL e aplicar mais transformações com o Power Query que possam ser dobradas de volta à fonte.
SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'
O primeiro passo foi definir o alvo correto, que neste caso é a base de dados onde o código SQL é executado.
Quando um passo tem o destino correto, pode selecionar esse passo — neste caso, Fonte em Passos Aplicados — e então selecionar o botão fx na barra de fórmulas para adicionar um passo personalizado. Neste exemplo, substitua a Source fórmula pela seguinte fórmula:
Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development' ", null, [EnableFolding = true])
O componente mais importante desta fórmula é a utilização do registo opcional para o quarto parâmetro da função que tem o campo de registo EnableFolding definido como verdadeiro.
Observação
Pode ler mais sobre a função Value.NativeQuery no artigo oficial de documentação.
Depois de introduzir a fórmula, é mostrado um aviso que exige que permita a execução de consultas nativas para o seu passo específico. Selecione continuar para que esta etapa seja avaliada.
Esta instrução SQL gera uma tabela com apenas três linhas e duas colunas.
Dobragem de consultas de teste
Para testar o query folding da sua query, pode tentar aplicar um filtro a qualquer uma das suas colunas e ver se o indicador de query folding ao nível dos passos aplicados mostra o passo como dobrado. Neste caso, pode filtrar a coluna DepartmentID para ter valores que não sejam iguais a dois.
Depois de adicionar este filtro, pode verificar se os indicadores de dobramento de consulta ainda mostram que está ocorrendo este dobramento de consulta neste novo passo.
Para validar melhor que consulta está a ser enviada para a fonte de dados, pode selecionar e manter pressionado (ou clicar com o botão direito) o passo Linhas Filtradas e selecionar a opção Ver plano de consulta para verificar o plano de consulta desse passo.
Na vista do plano de consulta, pode ver um nó com o nome Value.NativeQuery que possui um hiperlink de Ver Detalhes. Pode selecionar este hiperlink para ver a consulta exata que está a ser enviada para a base de dados SQL Server.
A consulta nativa é encapsulada numa outra instrução SELECT para criar uma subconsulta da consulta original. O Power Query faz o seu melhor para criar a consulta mais ótima, tendo em conta as transformações utilizadas e a consulta nativa fornecida.
Sugestão
Para cenários em que surgem erros porque a query folding não foi possível, recomendamos que tente validar os seus passos como uma subconsulta da sua consulta nativa original para verificar se podem existir conflitos de sintaxe ou contexto.