Parte da nossa série Performance & Scalability
Leia o guia completoAtualizaçã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âmetro | Nome | Tipo | Valor |
|---|---|---|---|
| Início do intervalo | FaixaIniciar | Data/Hora | Qualquer data histórica |
| Fim do intervalo | Fim do intervalo | Data/Hora | Data 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:
| Problema | Sintoma | Resolução |
|---|---|---|
| Consulta dobrada quebrada | Atualização completa em cada ciclo, tempos de atualização lentos | Refatore o Power Query para restaurar a dobra |
| Índice ausente na coluna datetime | Atualizações lentas de partição | Adicionar índice ao banco de dados de origem |
| Alterações nos dados de origem não capturadas | As partições históricas possuem dados desatualizados | Ative a detecção de alterações de dados ou amplie a janela contínua |
| A contagem de partições excede o limite | A atualização falha após 10 partições (Pro) | Atualize para Premium ou Fabric |
| Incompatibilidade de fuso horário | Registros errados em cada partição | Certifique-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.
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.
Artigos Relacionados
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.
Mais de Performance & Scalability
k6 Load Testing: Stress-Test Your APIs Before Launch
Master k6 load testing for Node.js APIs. Covers virtual user ramp-ups, thresholds, scenarios, HTTP/2, WebSocket testing, Grafana dashboards, and CI integration patterns.
Nginx Production Configuration: SSL, Caching, and Security
Nginx production configuration guide: SSL termination, HTTP/2, caching headers, security headers, rate limiting, reverse proxy setup, and Cloudflare integration patterns.
Odoo Performance Tuning: PostgreSQL and Server Optimization
Expert guide to Odoo 19 performance tuning. Covers PostgreSQL configuration, indexing, query optimization, Nginx caching, and server sizing for enterprise deployments.
Odoo vs Acumatica: Cloud ERP for Growing Businesses
Odoo vs Acumatica compared for 2026: unique pricing models, scalability, manufacturing depth, and which cloud ERP fits your growth trajectory.
Testing and Monitoring AI Agents in Production
A complete guide to testing and monitoring AI agents in production environments. Covers evaluation frameworks, observability, drift detection, and incident response for OpenClaw deployments.
Compliance Monitoring Agents with OpenClaw
Deploy OpenClaw AI agents for continuous compliance monitoring. Automate regulatory checks, policy enforcement, audit trail generation, and compliance reporting.