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.

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.

Em seguida, acessamos o 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.

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

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!