Performance

Atualização incremental no Power BI: como funciona e como configurar

16 Set 2026 9 min de leitura

Se o refresh do seu modelo demora horas, estoura o tempo limite ou consome boa parte da capacidade, provavelmente ele está reprocessando anos de histórico todos os dias — dados que não mudam desde sempre. A atualização incremental resolve exatamente esse desperdício: em vez de recarregar a tabela inteira, o Power BI atualiza somente a janela recente de dados.

O que é a atualização incremental

Quando você publica um modelo do Power BI Desktop no serviço, cada tabela vai para lá com uma única partição, contendo todas as linhas. Se essa tabela tem dezenas de milhões de linhas, cada atualização precisa varrer tudo de novo — o que leva muito tempo e consome uma quantidade excessiva de recursos.

A atualização incremental estende a atualização agendada com a criação e o gerenciamento automáticos de partições. O serviço passa a separar dinamicamente os dados que mudam com frequência daqueles que podem ser atualizados com menos frequência — ou que nunca mais mudam. Na prática, isso é feito filtrando a tabela por dois parâmetros de data/hora do Power Query com nomes reservados: RangeStart e RangeEnd.

O padrão de janela deslizante

A cada atualização, o serviço substitui os valores de RangeStart e RangeEnd para consultar apenas as linhas dentro do período de atualização. As linhas cuja data/hora já saiu dessa janela passam a fazer parte do período histórico e não são mais atualizadas.

Diagrama de janela deslizante da atualização incremental: dados arquivados, atualizados incrementalmente e em tempo real
Padrão de janela deslizante: apenas a janela recente é reprocessada; o histórico arquivado permanece intacto.

Os dois períodos rolam para frente no tempo. Conforme novas partições de atualização são criadas, as antigas viram partições históricas e, com o tempo, vão sendo mescladas em granularidades menos detalhadas. Quando uma partição histórica fica mais velha que o período de arquivamento definido na política, ela é removida do modelo. Esse comportamento é o que a Microsoft chama de padrão de janela rolante.

O que você ganha com isso

Requisitos: planos e fontes de dados

A atualização incremental tem suporte em Power BI Pro, Premium por usuário, Premium e Power BI Embedded. Já o recurso de obter os dados mais recentes em tempo real com DirectQuery é exclusivo de Premium, PPU e Embedded — no Pro ele não aparece.

Do lado da fonte, o recurso funciona melhor com fontes relacionais e estruturadas, como SQL Server, Azure SQL e Azure Synapse, mas o requisito real é outro: a fonte precisa suportar filtragem por data. Normalmente isso significa uma coluna de data/hora na tabela alvo. Se a sua coluna de data for uma chave inteira no formato yyyymmdd, dá para converter os parâmetros na própria consulta — e, para fontes web, os parâmetros podem ser embutidos na requisição HTTP.

Atenção a um detalhe fácil de esquecer: todas as partições, de importação ou DirectQuery, devem consultar dados de uma única fonte.

Passo 1 — criar os parâmetros RangeStart e RangeEnd

No Editor do Power Query, abra Gerenciar Parâmetros e crie dois parâmetros do tipo Data/Hora com os nomes reservados RangeStart e RangeEnd. Os nomes diferenciam maiúsculas de minúsculas e precisam ser exatamente esses. RangeStart representa a data/hora mais antiga e RangeEnd, a mais recente.

Caixa de diálogo Gerenciar Parâmetros do Power Query com os parâmetros RangeStart e RangeEnd do tipo Data/Hora
Os parâmetros RangeStart e RangeEnd criados na caixa de diálogo Gerenciar Parâmetros. Fonte: documentação da Microsoft.

No Power BI Desktop, esses valores servem apenas para carregar uma amostra pequena da tabela — um ou dois dias, por exemplo — para que o arquivo continue leve enquanto você trabalha. Depois que o modelo é publicado, o serviço substitui automaticamente esses valores conforme a política definida.

Passo 2 — filtrar a tabela pelos parâmetros

Com os parâmetros criados, aplique na coluna de data da tabela um filtro que os referencie. Esse filtro não pode ser feito pela opção padrão de “Filtro Personalizado” da interface: é preciso adicionar as etapas manualmente, editando a fórmula com Table.SelectRows.

let Source = Sql.Database("servidor", "AdventureWorks"), dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data], #"Linhas Filtradas" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd) in #"Linhas Filtradas"

Repare no detalhe dos operadores: o início da janela é inclusivo (>=) e o fim é exclusivo (<). É isso que evita que a mesma linha seja contada em duas partições vizinhas. Se a coluna de data for uma chave inteira, o filtro precisa converter o parâmetro antes de comparar:

#"Filtradas" = Table.SelectRows(Source, each [OrderDateKey] >= Int32.From(DateTime.ToText(RangeStart,[Format="yyyyMMdd"]))), #"Filtradas1" = Table.SelectRows(#"Filtradas", each [OrderDateKey] < Int32.From(DateTime.ToText(RangeEnd,[Format="yyyyMMdd"])))

Quando você define políticas para mais de uma tabela, os mesmos parâmetros RangeStart e RangeEnd devem ser usados em todas — ainda que cada tabela tenha períodos de arquivamento e de atualização diferentes.

Passo 3 — definir a política de atualização

Com o filtro aplicado, clique com o botão direito na tabela e abra Atualização incremental e dados em tempo real. Se a opção de ativar a atualização incremental estiver desabilitada, é sinal de que a consulta ainda não tem filtro baseado nos parâmetros.

Caixa de diálogo Incremental refresh and real-time data do Power BI Desktop com os períodos de arquivamento e de atualização incremental configurados
A política define quanto histórico o modelo guarda e qual janela é reprocessada a cada refresh. Fonte: documentação da Microsoft.

São duas configurações obrigatórias. Arquivar dados com início antes da data de atualização define o período histórico mantido no modelo — cinco anos, por exemplo. Atualizar de forma incremental os dados com início antes da data de atualização define a janela reprocessada a cada execução — três dias, por exemplo.

O ganho fica evidente com números. Uma tabela de fatos que recebe em média 10 mil linhas por dia e guarda cinco anos de histórico tem cerca de 18 milhões de linhas. Com uma janela de três dias, cada atualização processa aproximadamente 30 mil linhas em vez de 18 milhões. A regra ao dimensionar: escolha o menor período que ainda garanta um relatório correto.

Configurações opcionais que fazem diferença

ConfiguraçãoO que fazQuando usar
Obter os dados mais recentes em tempo real com DirectQueryCria uma partição DirectQuery para as linhas posteriores à janela de atualização, buscadas na fonte a cada consultaSomente Premium, PPU ou Embedded, quando o relatório precisa refletir dados do minuto
Atualizar apenas dias completosDescarta o dia parcial em andamento na operação de atualizaçãoMétricas que só fazem sentido com o dia fechado. Obrigatória se você ativar o DirectQuery em tempo real
Detectar alterações nos dadosUsa uma coluna de auditoria de data/hora para atualizar apenas os períodos que realmente mudaramQuando existe coluna de última modificação na origem — pode reduzir de três dias atualizados para um

Um cuidado sobre a detecção de alterações: a coluna escolhida não pode ser a mesma usada para particionar os dados com RangeStart e RangeEnd, e ela fica persistida em memória no modelo. Se for uma coluna de alta cardinalidade, vale reduzir a precisão (de segundos para horas, por exemplo) ou persistir apenas o valor máximo, para não trocar economia de refresh por consumo de memória.

Query folding é pré-requisito, não detalhe

Esse é o ponto onde a maioria das implementações falha. O filtro por RangeStart e RangeEnd só cumpre seu papel se for empurrado para a fonte via query folding. Sem folding, o motor de combinação de consultas compensa aplicando o filtro localmente — o que exige trazer todas as linhas da tabela da origem e anula completamente o propósito da atualização incremental, podendo inclusive esgotar os recursos do serviço ou do gateway.

Aviso do Power BI: não foi possível confirmar se a consulta M pode ser dobrada, não recomendado usar atualização incremental com consultas sem folding
Quando o Power BI Desktop não consegue confirmar o folding, ele avisa na própria caixa de diálogo da política.

Para fontes baseadas em SQL — SQL Database, Synapse, Oracle e Teradata — essa verificação automática do Desktop é confiável. Para as demais, use os Diagnósticos do Power Query ou rastreie as consultas na origem para ter certeza de que o filtro chegou até lá. Vale notar que a consulta final não precisa ser dobrável: dá para usar Value.NativeQuery() embutindo os parâmetros direto no SQL. Mas se a política incluir DirectQuery em tempo real, transformações não dobráveis não são permitidas.

Publicar e rodar a primeira atualização

Publique o modelo e execute a primeira atualização manualmente, para acompanhar o progresso. Ela vai demorar: é nesse momento que o serviço cria as partições, carrega todo o histórico e reconstrói relacionamentos, hierarquias e objetos calculados. As atualizações seguintes, manuais ou agendadas, são muito mais rápidas, porque só as partições da janela incremental são processadas.

Se o modelo estiver em capacidade Premium e puder passar de 1 GB, ative o formato de armazenamento de modelo semântico grande antes do primeiro refresh — depois fica mais trabalhoso.

Limites de tempo que você precisa conhecer

Independentemente da atualização incremental, modelos no Power BI Pro têm limite de duas horas por operação de atualização; em capacidade Premium, o limite é de cinco horas. Atualizações executadas pelo ponto de extremidade XMLA, disponível no Premium, não têm esse limite.

Vale lembrar por que esses limites existem: uma atualização completa pode consumir até o dobro da memória exigida pelo modelo, porque o serviço mantém um instantâneo em memória até a operação terminar. É exatamente esse custo que a atualização incremental reduz.

Outro ponto que costuma passar despercebido: por padrão, a data e a hora atuais são determinadas em UTC. Como isso afeta qual janela será considerada, configure o fuso horário nas opções de atualização agendada se a diferença for relevante para o seu negócio. Atualizações disparadas fora do serviço, como as via XMLA, ignoram essa configuração e usam sempre UTC.

Cuidados antes de publicar

Incremental e agendamento não são a mesma coisa

Vale separar bem os dois conceitos, porque eles costumam ser confundidos: o agendamento de refresh define quando a atualização acontece — horários, dias da semana, frequência. A atualização incremental define quanto dado é processado em cada uma dessas execuções.

Os dois se somam: com a janela incremental enxuta, cada refresh fica barato o suficiente para você agendar várias execuções por dia sem pressionar a capacidade. No Portal BI Embedded, você configura esses horários e acompanha o histórico de cada execução direto pelo portal.

Reduzir o custo do refresh é um dos passos com maior impacto quando um ambiente Power BI ou Fabric começa a ficar caro — muitas vezes evitando o aumento de SKU.

Perguntas frequentes

O que é atualização incremental no Power BI?

É um recurso que particiona automaticamente uma tabela do modelo semântico por período de tempo e atualiza apenas as partições mais recentes. Em vez de reprocessar anos de histórico a cada refresh, o Power BI atualiza só a janela definida na política — os últimos dias ou meses, por exemplo.

Preciso de licença Premium para usar atualização incremental?

Não. A atualização incremental tem suporte em Power BI Pro, Premium por usuário, Premium e Power BI Embedded. Apenas o recurso de obter os dados mais recentes em tempo real com DirectQuery exige Premium, PPU ou Embedded — no Pro ele não está disponível.

Qual a diferença entre atualização incremental e agendamento de refresh?

São coisas complementares. O agendamento define quando a atualização acontece (horários e dias da semana). A atualização incremental define quanto dado é processado em cada uma dessas execuções. Usados juntos, você atualiza com mais frequência gastando menos recursos.

Por que o botão de atualização incremental fica desativado na minha tabela?

Porque a consulta da tabela no Power Query não contém filtros baseados nos parâmetros RangeStart e RangeEnd. Crie os dois parâmetros do tipo Data/Hora com esses nomes exatos (diferenciam maiúsculas de minúsculas) e aplique as etapas de filtro na coluna de data antes de abrir a caixa de diálogo da política.

Posso baixar o arquivo PBIX depois de publicar com atualização incremental?

Não. Depois que o modelo é publicado no serviço com uma política de atualização incremental, ele não pode mais ser baixado como .pbix. Republicar do Power BI Desktop também remove todas as partições e dados já carregados — por isso, guarde o arquivo original e planeje as alterações de esquema com ferramentas como o ALM Toolkit.

Referência: Atualização incremental e dados em tempo real para modelos semânticos do Power BI — documentação oficial da Microsoft.

PRS Tecnologia

Precisa de licenciamento Microsoft?

A PRS Tecnologia está há 10 anos no mercado fornecendo soluções Microsoft e é parceira oficial Microsoft há 7 anos. Fornecemos todos os licenciamentos — Power BI, Microsoft Fabric, Azure e Microsoft 365 — com condições especiais para sua empresa.

Conheça a PRS Tecnologia

Quer ver na prática?

Teste o Portal BI Embedded gratuitamente por 30 dias e descubra todas as funcionalidades.

Solicitar demonstração gratuita
Voltar ao blog Fale conosco