Incremental Refresh in Power BI: Handling Large Datasets Efficiently

Master Power BI incremental refresh to handle datasets with millions of rows — configure partitions, set refresh policies, and maintain fast model performance at scale.

E
ECOSIRE Research and Development Team
|19 de março de 202613 min de leitura2.9k Palavras|

Parte da nossa série Performance & Scalability

Leia o guia completo

Atualização incremental no Power BI: tratamento eficiente de grandes conjuntos de dados

Cada implementação do Power BI eventualmente atinge o mesmo muro: o conjunto de dados fica grande o suficiente para que as atualizações completas demorem muito, consumam muitos recursos e excedam as janelas de tempo disponíveis antes que os usuários precisem dos dados.

Uma tabela de transações com 50 milhões de linhas, atualizada completamente a cada 4 horas, não apenas leva muito tempo — ela desperdiça recursos recarregando dados que não foram alterados. A atualização incremental resolve isso carregando apenas registros novos e alterados, mantendo os dados históricos que não mudam. Feito corretamente, um conjunto de dados que antes levava 3 horas para ser atualizado pode ser atualizado em menos de 10 minutos.

Este guia aborda a atualização incremental no Power BI, desde os primeiros princípios até a configuração avançada, incluindo os erros comuns que quebram as implementações e as práticas recomendadas que as tornam confiáveis ​​para produção.

Principais conclusões

  • A atualização incremental particiona conjuntos de dados por data, carregando apenas dados recentes em cada ciclo de atualização
  • Requer uma coluna de data e hora na tabela de fatos e dois parâmetros do Power Query (RangeStart, RangeEnd)
  • Os dados históricos são retidos em partições mais antigas que nunca são consultadas novamente após o carregamento inicial
  • O Power BI Premium (ou Fabric) é necessário para atualização incremental com mais de 10 partições
  • A opção Detectar alterações de dados reduz ainda mais o processamento, atualizando apenas as partições onde os dados foram alterados
  • Tabelas híbridas (combinando importação e DirectQuery) permitem dados em tempo real junto com partições históricas de importação
  • A configuração adequada requer a compreensão da dobra do Power Query – consultas não dobráveis interrompem a atualização incremental
  • Monitorar a integridade da partição por meio de endpoint XMLA e ferramentas de terceiros evita falhas silenciosas

Como funciona a atualização incremental

A compreensão da atualização incremental começa com a compreensão de como o Power BI particiona os dados.

Em um modelo de importação padrão, todo o conjunto de dados reside em uma única partição. Cada atualização substitui completamente esta partição. Para pequenos conjuntos de dados, isso é bom. Para tabelas grandes, isso cria os problemas descritos acima.

A atualização incremental divide a tabela de fatos em diversas partições, cada uma cobrindo um intervalo de datas específico:

  • Partição 1: 01/01/2020 a 31/12/2020 (histórico, nunca atualizado)
  • Partição 2: 2021-01-01 a 2021-12-31 (histórico, nunca atualizado)
  • Partição 3: 2022-01-01 a 2022-12-31 (histórico, nunca atualizado)
  • Partição 4: 2023/01/01 a 2023/12/31 (histórico, nunca atualizado)
  • Partição 5: 01/01/2024 a 31/12/2024 (atualizada mensalmente)
  • Partição 6: 01/01/2025 a 31/03/2025 (atualizada diariamente)
  • Partição 7: 2025-04-01 até a atual (atualizada de hora em hora ou sob demanda)

Em cada atualização agendada, apenas as partições mais recentes (5, 6 e 7 neste exemplo) são processadas. As partições históricas permanecem intactas desde o primeiro carregamento. Isso significa que um ciclo de atualização processa apenas uma fração do total de dados, reduzindo drasticamente o tempo, a memória e a carga do sistema de origem.


Pré-requisitos e Requisitos

Antes de configurar a atualização incremental, verifique se estes pré-requisitos foram atendidos:

Licenciamento: a atualização incremental está disponível no Power BI Pro (com limitações) e no Power BI Premium/Fabric (capacidade total). Com o Pro, você pode configurar até 10 períodos de atualização. Premium remove esse limite e adiciona o recurso “detectar alterações de dados”.

Coluna de data e hora: a tabela de fatos deve ter uma coluna de data e hora (não um número inteiro de chave de data — deve ser um tipo de data e hora real) que o Power BI usará para particionar os dados. Normalmente é a data da transação, o carimbo de data/hora do evento ou a coluna criada em.

Dobramento de consulta: a consulta do Power Query que carrega a tabela de fatos deve dar suporte ao dobramento de consulta — a capacidade de traduzir as etapas de transformação do Power Query em uma consulta de origem (SQL, etc.) que o sistema de origem executa. Se a dobragem da consulta for interrompida, a atualização incremental falhará silenciosamente – ela carrega todos os dados em cada atualização, anulando o propósito.

Suporte ao sistema de origem: a origem deve oferecer suporte eficiente à filtragem por intervalo de datas. Uma tabela de origem sem um índice na coluna datetime produzirá atualizações lentas mesmo com a atualização incremental configurada, porque cada atualização de partição fará uma varredura completa da tabela para localizar registros no intervalo de datas.


Configuração passo a passo

Etapa 1: Crie os parâmetros necessários do Power Query

No Power BI Desktop, abra o Editor do Power Query. Vá para Gerenciar Parâmetros → Novo Parâmetro.

Crie dois parâmetros exatamente como segue (os nomes diferenciam maiúsculas de minúsculas e devem corresponder exatamente):

ParâmetroNomeTipoValor
Início do intervaloFaixaIniciarData/HoraQualquer data histórica
Fim do intervaloFim do intervaloData/HoraData atual

Esses parâmetros devem ser do tipo Data/Hora, não Data. Eles serão substituídos pelo mecanismo de atualização do Power BI em tempo de execução, mas precisam de valores padrão válidos para desenvolvimento e teste.

Etapa 2: Filtre a tabela de fatos usando estes parâmetros

No Editor do Power Query, selecione sua tabela de fatos. Aplique um filtro na coluna datetime usando os parâmetros:

= Table.SelectRows(Source, each [TransactionDate] >= RangeStart and [TransactionDate] < RangeEnd)

Esta etapa de filtragem é crítica: ela deve ser dobrada para a fonte de dados. Para verificar o dobramento, clique com o botão direito na última etapa da consulta e verifique se "Visualizar consulta nativa" está disponível. Se estiver esmaecido, a dobra foi quebrada — investigue quais etapas de transformação acima dela estão quebrando a cadeia de dobra.

Etapa 3: verificar a dobragem da consulta

A dobragem de consultas é interrompida mais comumente devido a:

  • Funções personalizadas que não podem ser traduzidas para SQL
  • Mesclar (juntar) duas consultas onde uma ou ambas não dobram
  • Certas funções de transformação de texto (Text.Upper, Text.PadStart)
  • Usando operações de lista (List.Contains)
  • Adicionando uma coluna de índice
  • Certas operações de conversão de tipo

Se a dobragem for interrompida, refatore a consulta para enviar as operações problemáticas para uma etapa posterior após o filtro de data — ou execute a transformação em uma visualização no banco de dados de origem em vez de no Power Query.

Etapa 4: Configurar a política de atualização incremental

No Power BI Desktop, clique com o botão direito na tabela de fatos no painel Campos → Atualização Incremental.

As opções de configuração:

  • Armazenar linhas nos últimos N anos/meses/dias: Define a janela histórica total mantida no modelo. Dados mais antigos que isso são automaticamente removidos do modelo (partições eliminadas).

  • Atualizar apenas linhas nos últimos N anos/meses/dias: isso define a janela contínua que é atualizada novamente em cada ciclo. Os dados anteriores a esta janela são tratados como históricos (imutáveis) e nunca mais são atualizados.

  • Detectar alterações de dados: (somente Premium) usa uma coluna de data e hora separada (normalmente uma coluna de "última modificação") para detectar quais partições históricas alteraram dados e apenas reprocessa essas partições.

Exemplo de configuração para um banco de dados transacional com 5 anos de histórico:

  • Armazenar linhas nos últimos 5 anos
  • Atualizar apenas linhas nos últimos 3 dias

Isto cria partições que cobrem 5 anos de dados, mas apenas as partições dos últimos 3 dias são atualizadas em cada ciclo.

Etapa 5: publicar e validar

Publique o relatório no serviço do Power BI. A primeira atualização após a publicação levará mais tempo do que as atualizações subsequentes — ela carrega todos os dados históricos e cria todas as partições pela primeira vez. Isto é esperado.


Configuração avançada: detectar alterações de dados

A opção “Detectar alterações de dados” no Premium adiciona outra camada de eficiência. Ele funciona consultando uma coluna designada (normalmente uma coluna last_modified_date) para determinar se algum registro em uma partição histórica foi atualizado. Somente as partições onde os dados foram realmente alterados são atualizadas.

Sem detectar alterações nos dados: a janela contínua de 3 dias é sempre atualizada, mesmo que nenhum dado tenha sido alterado nos últimos 3 dias.

Com detectar alterações de dados: o mecanismo de atualização verifica se algum registro na janela contínua foi modificado antes de decidir se deve processar cada partição. Se os dados de segunda-feira foram atualizados na noite de segunda-feira e nenhum registro foi modificado desde então, a atualização de terça-feira à noite ignora a partição de segunda-feira.

Isto é particularmente valioso para cenários em que:

  • Os dados de origem são gravados uma vez e raramente atualizados (eventos imutáveis somente para acréscimos)
  • A janela contínua é grande (por exemplo, 30 dias), mas na maioria dos dias não há alterações
  • A capacidade de consulta do sistema de origem é limitada

A coluna detectar alterações de dados deve ser indexada no banco de dados de origem — o mecanismo de atualização consulta essa coluna para cada partição em cada ciclo de atualização.


Tabelas híbridas: dados históricos + em tempo real

O Power BI Fabric/Premium apresenta tabelas híbridas — uma combinação poderosa de modo de importação (partições históricas) e modo DirectQuery (dados do dia atual). Isso permite painéis que mostram dados atualizados até o minuto atual junto com dados históricos de importação.

Em uma configuração de tabela híbrida:

  • As partições históricas (de ontem e anteriores) estão em modo de importação — rápidas, armazenadas em cache e totalmente agregáveis
  • A partição atual está no modo DirectQuery — as consultas são executadas em tempo real no banco de dados de origem

A experiência do usuário é perfeita: as consultas abrangem ambos os modos de forma transparente. Uma consulta para "vendas desta semana versus semana passada" extrai os dados de ontem da partição de importação e os dados de hoje por meio do DirectQuery, combinando-os em um único resultado.

Considerações para tabelas híbridas:

  • O desempenho do DirectQuery depende inteiramente do desempenho do banco de dados de origem — um banco de dados lento significa consultas lentas no dia atual
  • A partição DirectQuery não se beneficia das otimizações do modo de importação (sem compactação VertiPaq, sem pré-agregações)
  • Requer um espaço de trabalho Premium ou Fabric

Monitorando a saúde da atualização incremental

As falhas de atualização incremental geralmente são silenciosas — o modelo é exibido como "atualizado com sucesso", mesmo que algumas partições falhem ou voltem à atualização completa. O monitoramento é essencial para a confiabilidade da produção.

Inspeção de ponto de extremidade XMLA: o Power BI Premium expõe um ponto de extremidade XMLA ao qual ferramentas como SQL Server Management Studio (SSMS), Editor Tabular ou Azure Analysis Services podem se conectar. A partir daí, você pode consultar os metadados da partição para ver o horário da última atualização de cada partição e se alguma partição está em estado de erro.

Tabular Editor 2 (gratuito): Conecte-se ao espaço de trabalho Premium via XMLA e inspecione a tabela de partições no modelo. Cada partição mostra seu nome, intervalo de datas, carimbo de data/hora da última atualização e estado. Esta é a ferramenta mais prática para diagnosticar problemas de atualização incremental.

Log de atividades do Power BI: o log de atividades do administrador registra operações de atualização, incluindo quais partições foram processadas e quaisquer erros. Disponível por meio da API REST do Power BI.

Padrões de falha comuns:

ProblemaSintomaResolução
Consulta dobrada quebradaAtualização completa em cada ciclo, tempos de atualização lentosRefatore o Power Query para restaurar a dobra
Índice ausente na coluna datetimeAtualizações lentas de partiçãoAdicionar índice ao banco de dados de origem
Alterações nos dados de origem não capturadasAs partições históricas possuem dados desatualizadosAtive a detecção de alterações de dados ou amplie a janela contínua
A contagem de partições excede o limiteA atualização falha após 10 partições (Pro)Atualize para Premium ou Fabric
Incompatibilidade de fuso horárioRegistros errados em cada partiçãoCertifique-se de que RangeStart/RangeEnd use UTC

Verificação de dobramento de consulta na prática

A dobragem de consultas é o motivo mais comum pelo qual a atualização incremental não consegue entregar os ganhos de desempenho prometidos. Veja como diagnosticar e corrigir quebras de dobramento comuns.

Teste 1: Visualizar consulta nativa. Depois de adicionar a etapa do filtro RangeStart/RangeEnd no Power Query, clique com o botão direito na etapa. Se "View Native Query" estiver disponível e mostrar uma consulta SQL com uma cláusula WHERE filtrando o intervalo de datas, a dobra está funcionando.

Teste 2: Verifique o SQL gerado. A consulta nativa deve conter algo como:

WHERE [TransactionDate] >= @RangeStart AND [TransactionDate] < @RangeEnd

Se a cláusula WHERE estiver faltando, a dobragem foi interrompida e o filtro está sendo aplicado no mecanismo do Power Query após carregar todos os dados da origem.

Restaurar a dobragem: se uma transformação personalizada interrompeu a dobragem, mova-a após o passo do filtro de data ou execute a transformação numa vista SQL na base de dados de origem e ligue o Power BI à vista em vez da tabela.


Perguntas frequentes

A atualização incremental funciona com todas as fontes de dados?

A atualização incremental funciona com qualquer fonte de dados que ofereça suporte à dobragem de consultas e à filtragem de intervalo de datas, incluindo SQL Server, Azure SQL, PostgreSQL, Snowflake, BigQuery, Azure Synapse e Databricks. Ele não funciona bem com fontes que não suportam dobramento de consultas (arquivos Excel, CSV simples, algumas APIs REST) ​​— nesses casos, a atualização completa ainda é necessária. Para fontes não dobráveis, preparar dados em um banco de dados SQL antes da conexão do Power BI é a solução alternativa recomendada.

Qual licença do Power BI é necessária para atualização incremental?

A atualização incremental está disponível no Power BI Pro (limitado a 10 períodos de atualização), no Power BI Premium por capacidade, no Power BI Premium por usuário (PPU) e nas capacidades do Microsoft Fabric. O recurso "detectar alterações de dados" e as tabelas híbridas exigem Premium ou Fabric. Para a maioria das implementações empresariais com mais de 10 partições históricas, é necessário Premium ou Fabric.

Como a atualização incremental lida com dados que chegam tarde?

Os dados que chegam atrasados ​​— registros que chegam após a data da transação (por exemplo, uma transação de dezembro que chega na extração de dados de janeiro) — são tratados configurando a janela de atualização contínua ampla o suficiente para capturar as chegadas atrasadas. Se os dados puderem chegar com até 7 dias de atraso, definir a janela contínua para 14 dias garante que as chegadas atrasadas sejam capturadas quando a partição relevante for atualizada novamente. Como alternativa, a opção detectar alterações de dados com uma coluna da última modificação captura as chegadas atrasadas, independentemente da configuração da janela contínua.

A atualização incremental pode funcionar em tabelas de dimensões, não apenas em fatos?

A atualização incremental foi projetada para tabelas de fatos grandes e requer uma coluna de filtro de data e hora. A maioria das tabelas de dimensão (produtos, clientes, locais) não possui uma coluna de partição de data e hora adequada e são pequenas o suficiente para que a atualização completa seja apropriada. Para tabelas de dimensões que mudam lentamente e que cresceram muito (tabelas de clientes com mais de 50 milhões de linhas), uma abordagem alternativa é usar visualizações SQL no banco de dados de origem para filtrar registros alterados recentemente e lidar com a retenção de histórico na camada de banco de dados em vez do Power BI.

Como posso ver quais partições existem no meu modelo de atualização incremental?

A maneira mais fácil é conectar o Tabular Editor (versão gratuita 2) ao seu espaço de trabalho do Power BI Premium por meio do ponto de extremidade XMLA. Em Tabelas → [sua tabela] → Partições, você verá todas as partições criadas com seus intervalos de datas e carimbos de data/hora do último processamento. O SQL Server Management Studio (SSMS) também se conecta via XMLA e mostra detalhes da partição no Object Explorer.

O que acontece se a atualização incremental falhar no meio?

Se uma atualização falhar no meio, o Power BI tentará novamente as partições com falha. As partições que foram concluídas com sucesso antes da falha não são processadas novamente — apenas as partições com falha são repetidas. Este comportamento de nova tentativa significa que a atualização incremental é mais resiliente a interrupções transitórias do sistema de origem do que a atualização completa. Se uma partição falhar consistentemente, a partição permanecerá em seu último estado carregado com sucesso enquanto as novas partições continuarão a ser atualizadas normalmente.


Próximas etapas

A atualização incremental é fundamental para qualquer implementação do Power BI que lide com grandes conjuntos de dados transacionais. Acertar desde o início - com dobramento de consulta adequado, janelas rolantes apropriadas e monitoramento - evita os problemas de desempenho que forçam uma rearquitetura cara posteriormente.

Os serviços de otimização de desempenho do Power BI da ECOSIRE incluem design e implementação de atualização incremental para conjuntos de dados corporativos em grande escala. Entre em contato conosco para avaliar sua arquitetura de atualização atual e identificar oportunidades de otimização.

E

Escrito por

ECOSIRE Research and Development Team

Construindo produtos digitais de nível empresarial na ECOSIRE. Compartilhando insights sobre integrações Odoo, automação de e-commerce e soluções de negócios com IA.

Converse no WhatsApp