M365Con 2027 – conferência online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Dominando o query folding no Power BI: envie o trabalho para a fonte de dados

By ·

Ao trabalhar com o Power BI, poucas coisas são tão frustrantes quanto ver a atualização dos seus dados demorar uma eternidade ou, pior, falhar por falta de recursos…

Automatically translated with AI from the original post. Read the English original

▶ BLOGMastering Query Foldingin Power BI: Push the…M365.FM
Titelbild: Mastering Query Folding in Power BI: Push the Work to Your Data Source

Ao trabalhar com o Power BI, poucas coisas são tão frustrantes quanto ver a atualização dos dados demorar uma eternidade ou, pior, falhar por falta de recursos. Se você estiver extraindo milhões de linhas de um banco de dados SQL remoto, de um data warehouse corporativo ou de um serviço em nuvem, a forma como você trata as transformações faz diferença. Cada etapa que você cria no Power Query pode ser processada de forma eficiente pelo servidor potente que hospeda os seus dados ou de forma lenta pela sua máquina local ou pelo mecanismo de memória do serviço do Power BI. É aqui que entra a mágica do query folding.

Neste post, vamos aprofundar o query folding: como ele otimiza as transformações de dados, técnicas práticas para garantir que suas etapas sejam dobradas corretamente, armadilhas comuns que quebram a cadeia de folding e como você pode melhorar drasticamente a eficiência geral da atualização dos seus relatórios. Vamos devolver o trabalho para onde ele deve estar: a fonte de dados.

Introdução ao query folding

Em sua essência, o query folding é o mecanismo pelo qual o Power Query traduz as etapas de transformação que você constrói na interface em uma linguagem de consulta nativa, normalmente SQL, e envia essa consulta de volta ao banco de dados de origem para execução. Em vez de baixar cada linha, tabela e coluna para a memória do Power BI e só então filtrar, agrupar ou juntar tudo localmente, o Power BI pede ao banco de dados de origem que faça o trabalho pesado.

Pense em uma compra de supermercado. Se você vai a um atacadista enorme, pega todos os itens da loja, leva tudo para a sua mesa de cozinha e depois descarta 90% deles porque estão vencidos ou não são o que você precisava, está desperdiçando uma quantidade imensa de tempo e energia. É isso que acontece sem o query folding. Com ele ativado, você entrega ao atendente do atacadista uma lista específica: "Me traga apenas as maçãs com peso acima de meio quilo, agrupadas por cor." O atendente faz a separação no próprio armazém e entrega uma caixa pequena com exatamente o que você pediu. Sua cozinha continua limpa e você termina o preparo muito mais rápido.

Como o query folding otimiza as transformações de dados

O query folding é a base de uma arquitetura escalável no Power BI. Quando executado corretamente, ele minimiza a transferência de dados pela rede, reduz drasticamente o uso de memória durante a atualização e acelera o seu fluxo de desenvolvimento.

Quando você aplica transformações como filtrar linhas, remover colunas, ordenar ou executar agregações básicas no início das etapas aplicadas do Power Query, o conector de dados avalia se a fonte consegue executar essa operação nativamente. Se conseguir, essas etapas são combinadas em uma única consulta altamente otimizada, enviada à fonte. O mecanismo do banco de dados executa essa consulta usando os índices já existentes, o que significa que ele consegue percorrer milhões de linhas em milissegundos.

Por outro lado, se o query folding for interrompido, o Power BI é forçado a trazer todo o conjunto de dados, sem compactação e sem filtros, pela rede até o mecanismo de avaliação do Power Query (mashup engine). Depois que os dados estão na máquina local, o Power BI aplica seus filtros e transformações usando CPU e RAM locais. Para grandes conjuntos de dados corporativos, isso é receita para timeouts gateway, erros de falta de memória e atualizações de relatório lentas.

Técnicas práticas para garantir que as etapas sejam dobradas corretamente

Nem todas as etapas do Power Query são iguais, e nem todas as fontes de dados oferecem suporte ao query folding. Bancos de dados relacionais como SQL Server, Oracle e PostgreSQL têm recursos robustos de folding, enquanto arquivos planos como CSVs ou pastas de trabalho do Excel não fazem folding da mesma forma, porque não possuem um processador de consultas nativo.

Para garantir que suas etapas sejam dobradas com sucesso, você precisa estruturar as etapas aplicadas em uma sequência específica e estar atento às funções que utiliza. Aqui estão técnicas práticas para manter suas consultas com folding:

Erros comuns que quebram o query folding

Um dos aspectos mais delicados do query folding é que ele é frágil. Uma única etapa de transformação aparentemente inofensiva, posicionada na ordem errada, pode romper completamente a cadeia de folding, fazendo com que todas as etapas seguintes sejam executadas localmente, mesmo que o banco de dados seja totalmente capaz de processá-las.

Vejamos alguns dos erros mais comuns que quebram o query folding:

  1. Inserir SQL nativo e transformar depois: Se você escrever uma consulta SQL nativa logo no início da etapa de origem dos dados, o Power Query trata esse conjunto de resultados como uma caixa-preta. As transformações adicionadas depois pela interface do Power Query normalmente não serão propagadas, porque o Power Query não consegue injetar com segurança etapas da interface em um bloco SQL personalizado.
  2. Conversões de tipo cedo demais ou fora de ordem: Alterar tipos de dados é essencial, mas fazer isso antes de filtrar ou de executar operações que conflitam com as regras de tipagem do banco de dados pode quebrar o folding. Por exemplo, converter uma coluna numérica para texto e, em seguida, tentar aplicar um filtro de intervalo numérico sobre ela pode impedir que o banco de dados otimize a consulta.
  3. Adicionar colunas de índice ou usar números de linha: Funções que dependem da posição das linhas, como "Adicionar Coluna de Índice" ou operações que referenciam linhas vizinhas por um índice absoluto, exigem que todo o conjunto de dados seja carregado na memória para determinar as posições. Isso interrompe o query folding imediatamente.
  4. Misturar fontes de dados: Se você mesclar uma tabela de um banco SQL com uma tabela de um arquivo Excel, o query folding para no ponto em que as duas fontes se cruzam, porque o Excel não processa consultas SQL nativamente.

Melhorando a eficiência de atualização do Power BI

Quando você domina o query folding, os efeitos se espalham por toda a sua arquitetura de dados. Atualizações de relatórios que antes levavam horas podem cair para minutos ou até segundos. Essa eficiência não só economiza recursos de computação nos seus gateways ou servidores na nuvem, como também permite que os desenvolvedores iterem com mais rapidez.

Para maximizar a eficiência de atualização, combine o query folding com outras boas práticas fundamentais de modelagem. Por exemplo, garanta que as tabelas do banco de dados tenham índices adequados nas colunas que você filtra ou usa em junções com frequência. Se as suas tabelas SQL não tiverem índices, até mesmo uma consulta dobrada fará o mecanismo do banco executar varreduras de tabela custosas. Além disso, combine o query folding com um modelo de dados em esquema estrela bem estruturado, removendo colunas redundantes e implementando políticas de atualização incremental para conjuntos de dados históricos volumosos.

Monitoramento e solução de problemas em consultas do Power BI

Não é possível corrigir o que não se mede. Ao lidar com atualizações lentas ou falhas inesperadas nas consultas, você precisa de uma abordagem sistemática para identificar onde está o gargalo. Comece usando a ferramenta de Diagnósticos do Power Query dentro do Power BI Desktop. Esse recurso permite acompanhar o tempo de execução de cada etapa, mostrando exatamente quanto tempo cada transformação leva e se os dados estão sendo obtidos remotamente ou processados localmente.

Além disso, monitore os logs do gateway e os profilers de banco de dados (como o SQL Server Profiler ou os Eventos Estendidos) para observar as consultas exatas enviadas do Power BI para a sua fonte de dados. Se você vir instruções SELECT enormes puxando tabelas brutas e sem filtro, em vez de consultas direcionadas com cláusulas WHERE e GROUP BY, saberá imediatamente que o query folding falhou em algum ponto das suas etapas aplicadas.

Para uma visão completa sobre a ordem de execução, armadilhas operacionais e fluxos de otimização avançados, não deixe de ouvir o episódio de podcast relacionado e ler as notas sobre Power Query Folding and Execution Order in Power BI. Entender a ordem subjacente das operações vai lhe dar confiança para criar modelos robustos e extremamente rápidos, sempre.

Conclusão

Dominar o query folding é uma das habilidades de maior impacto que um desenvolvedor de Power BI pode adquirir. Ao transferir a carga de processamento da sua máquina local ou do serviço do Power BI para os mecanismos poderosos e altamente otimizados das suas fontes de dados, você elimina gargalos de desempenho, reduz a congestão de rede e garante que as atualizações dos seus relatórios sejam executadas de forma tranquila e confiável. Ao definir intencionalmente a sequência das etapas, verificar regularmente suas consultas nativas e evitar armadilhas comuns, como indexação prematura ou a mistura de fontes incompatíveis, você pode desbloquear todo o potencial do seu ambiente de business intelligence.

Para aprofundar esses conceitos e ouvir uma análise detalhada de como a ordem de execução das consultas impacta o desempenho do seu workspace, ouça a discussão completa no episódio de podcast Power Query Folding and Execution Order in Power BI. Aplique essas estratégias hoje e veja o desempenho dos seus relatórios melhorar!

Power BI Power Query Power BI Service Connector Microsoft To Do Semantic model

Related articles

RSS