Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Usando consultas SQL no Power Query para melhor desempenho

Você sabia que é possível passar instrução SQL dentro do Power Query e simplificar o fluxo de trabalho na transformação de dados?
Neste conteúdo, vou mostrar a você como otimizar a transformação de dados nos relatórios usando consultas SQL diretamente no Power Query.

Quando importamos dados no Power Bi, é normal trazer as tabelas de forma separada e então fazermos as transformações mesclando as tabelas no Power Query. Esse processo embora seja simples, pode gerar várias etapas aplicadas, o que aumenta o tamanho e o tempo de processamento do arquivo.

Como exemplo, utilizei a base AdventureWorksLT2022.

Depois de conectar o banco de dados com o modelo, importei três tabelas de exemplo, sendo elas, SalesLT.SalesOrderDetail, SalesLT.SalesOrderHeader e SalesLT.Customer.
Essas tabelas têm relação, onde a SalesOrderHeader se relaciona com a SalesOrderDetail através do campo SalesOrderID, presente nas duas tabelas e a SalesOrderDetail se relaciona com a tabela Customer através do CustomerID.

Uma vez que importamos as tabelas completas para o Power BI, precisamos tratar os dados, selecionando as colunas de interesse, aplicando as transformações e, em seguida, mesclando as 3 consultas para criar uma tabela de fato, chamada ‘f_Vendas”. Esse procedimento pode gerar diversas etapas aplicadas, no exemplo simplificado abaixo gerou 6 etapas.

Imagem que mostra as Etapas aplicadas na transformação do Power Query.

De acordo com as boas práticas, essas etapas deveriam ser renomeadas e ter a descrição acrescentada para facilitar a manutenção posterior.

Agora, em vez de importar 3 tabelas grandes para dentro do arquivo, vamos inserir uma instrução SQL no Power Query, transferindo a carga de transformação para o SQL.

Primeiro, criamos uma consulta em branco no Power Query. Essa consulta é chamada de “nula” porque ainda não contém nenhum dado ou transformação. O objetivo é iniciar uma consulta vazia, para que possamos, em seguida, adicionar a instrução SQL diretamente no editor avançado e carregar os dados conforme desejado.

Imagem para mostrar o caminho da

Em seguida, acessamos o editor avançado;

Imagem para mostrar o caminho do editor avançado


Criamos a instrução SQL SELECT dentro do editor avançado, conforme imagem abaixo, juntando as 3 tabelas, selecionando as colunas de interesse e, aplicando filtros, se necessário.

imagem que mostra a a instrução SQL dentro do editor avançado do Power Query.

Depois de passar a instrução, você deve chamar a consulta na instrução SQL.

imagem que mostra a instrução de query para chamar a consulta criada.

Feito isso, todas as 3 tabelas já estão mescladas e foram geradas apenas 2 etapas aplicadas.

Esse Processo traz muitos benefícios para seu modelo:

  • Desempenho: O processamento dos dados é transferido para o SQL, que é preparado para processar grandes quantidades de dados, isso reduz o a carga de processada no Power Query.
  • Arquivos leves: Os resultados da consulta já traz os registros consolidados, diminuindo a quantidade de etapas aplicadas no Power Query, e diminuindo drasticamente o tamanho do arquivo PBIX visto que somente os dados consolidados são importados. Vale lembrar que as contas PRO tem o Limite de tamanho de memória do modelo = 1GB e Armazenamento máximo de 10gb.
  • Facilidade de manutenção: Alterações podem ser feitas diretamente no script SQL, o que facilita a manutenção e possibilita a reutilização em outros relatórios.
  • Maior flexibilidade no tratamento dos dados: No SQL é possível realizar operações mais avançadas, como junções complexas, aplicação de filtros e agregações antes que os dados sejam enviados para o PBIX.
  • Processamento rápido e escalabilidade: Servidores SQL lidam melhor com grandes volumes de dados com maior eficiência, assim terão uma melhor performance.
  • Economia na capacidade do Power BI Embedded: Caso utiliza um tipo de licenciamento por capacidade Embedded, os relatórios são processados no servidor SQL e não consomem nós de capacidade do Power Bi Embedded. Isso vai gerar uma economia considerável, especialmente em ambientes corporativos com múltiplos relatórios e usuários. Para saber mais sobre consumo de capacidade do licenciamento Power Bi Embedded clique aqui

Veja o resultado:
Apenas os dados necessários foram importados, e o processo foi simplificado para duas etapas.

Caso queiram seguir o meu passo a passo para estudo, deixarei abaixo os links para os repositórios do GitHub com o script SQL, o repositório com o script M do Power Query e o link para baixar a base diretamente do Microsoft Learn.

REPOSITÓRIO SQL:
https://github.com/GuilhermeCabral-DC/sql-server/blob/main/Script_SQL_x_PowerBi_Post1

REPOSITÓRIO POWER QUERY:
https://github.com/GuilhermeCabral-DC/power-query/blob/main/Scripts_PowerQuery_Post1

DOWNLOAD DA BASE ADVENTUREWORKS LT 2022:
https://learn.microsoft.com/pt-br/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tabs=ssms#download-backup-files


Espero que este conteúdo tenha sido útil para otimizar a transformação de dados no Power BI utilizando SQL no Power Query. Ao transferir parte do processamento para o SQL, conseguimos melhorar o desempenho e reduzir o tamanho do arquivo PBIX, deixando seu modelo mais leve e rápido.

Se você tiver alguma dúvida ou quiser compartilhar suas próprias experiências, deixe um comentário abaixo! Não se esqueça de seguir os links para acessar os repositórios com os scripts e a base de dados para facilitar seus estudos.

Até o próximo post!

Profissional de Business Intelligence.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Contato

Copyright © 2025 Data Cabral. Todos os direitos reservados