Faculdade Perto

RangeStart e RangeEnd: como evitar períodos duplicados

Entenda como RangeStart e RangeEnd separam períodos sem sobreposição e quais cuidados preservam a atualização incremental e o arquivo PBIX.

Faculdade PertoAtualizado em 7 min de leitura

RangeStart e RangeEnd devem formar fronteiras temporais sem sobreposição. Para isso, os dois filtros não podem incluir simultaneamente a igualdade: uma configuração coerente inclui o início do intervalo e exclui o final, ou faz o inverso de maneira consistente. Se ambos aceitarem o mesmo instante limítrofe, registros dessa fronteira podem aparecer em dois períodos e ser duplicados.[1]

A regra das fronteiras temporais

Uma forma direta de representar cada período é usar um intervalo semiaberto:

Data >= RangeStart e Data < RangeEnd

Nesse desenho, o instante inicial pertence ao período atual, enquanto o instante final fica reservado ao período seguinte. O ponto central não é escolher obrigatoriamente essa direção, mas impedir que RangeStart e RangeEnd incluam, ao mesmo tempo, o valor de igualdade.[1]

A fronteira precisa ser entendida como uma divisão entre partições temporais, não apenas como duas datas digitadas em campos diferentes. Quando o final de um período também é aceito como início do próximo, o mesmo instante satisfaz os dois conjuntos de condições. É essa interseção que cria o risco de duplicação mencionado para os limites dos períodos.[1]

Pense na fronteira como o portão de entrada de um período: se você permite que a mesma hora abra dois portões simultâneos (um como "menor ou igual" e outro como "maior ou igual"), a pessoa que chega exatamente naquele instante passa por ambos. No seu caso, em vez de pessoa é um registro de banco de dados. A duplicação nasce dessa confusão de quem é dono do limite. No Brasil, seria como dois vendedores tentando registrar a mesma venda porque ninguém definiu se ela pertence ao mês de agosto ou setembro.

Dos parâmetros ao filtro no Power Query

A política utilizada no Power BI Service precisa ser preparada no Power BI Desktop. RangeStart e RangeEnd devem ser aplicados como filtros à coluna temporal antes de sair do Power Query Editor. Depois disso, é necessário selecionar a tabela correspondente no Desktop e definir sua política de atualização incremental.[2]

Essa sequência separa duas responsabilidades. O filtro determina quais registros pertencem ao intervalo representado pelos parâmetros, enquanto a política da tabela define como esse intervalo será usado na atualização incremental. Portanto, criar os parâmetros sem aplicá-los à consulta não completa a preparação descrita pelas fontes.[2]

Também é importante conferir se o filtro foi aplicado à tabela que receberá a política. A orientação disponível exige tanto a delimitação por RangeStart e RangeEnd no Power Query quanto a seleção posterior da tabela correta no Power BI Desktop.[2]

Você está em uma reunião com o gerente que quer reduzir o tempo de atualização. Ele pergunta por que a política recém-criada não funciona apesar do arquivo estar publicado. Quando você volta ao Power BI Desktop, descobre que os parâmetros RangeStart e RangeEnd foram criados, mas o filtro foi aplicado apenas parcialmente, ou à coluna errada. O ponto fraco aqui é que a interface do Power BI Desktop não avisa se o filtro saiu do Power Query: você precisa revisar manualmente a consulta de origem.

Artigos relacionados aprofundam temas semelhantes: quando o mesmo indicador apresenta três resultados diferentes (um problema comum quando filtros se sobrepõem) e por que a atualização do Power BI fica lenta (onde a má delimitação de períodos intensifica o custo).

Armazenamento e renovação não são o mesmo período

A configuração exige a definição de um período de armazenamento e de um período de renovação. O armazenamento determina o intervalo histórico mantido, enquanto a renovação identifica a parcela destinada ao processamento recorrente de dados novos.[1, 2]

Na primeira execução, a atualização incremental carrega todo o intervalo de armazenamento configurado. Nas execuções seguintes, o processamento recai sobre o período definido para os dados novos.[1] Essa diferença explica por que uma configuração pode produzir uma carga inicial ampla e, depois, trabalhar apenas com uma parcela dos dados.

Processar somente parte dos dados pode tornar a operação mais rápida, confiável e econômica no uso de recursos.[2] Esse benefício, porém, depende de os limites temporais separarem os períodos corretamente. Uma faixa menor de renovação não elimina uma sobreposição criada por operadores de comparação inadequados.

A política também pode detectar alterações ou limitar a atualização a dias completos.[2] Essas opções acrescentam critérios à política, mas não substituem a necessidade de estabelecer corretamente as fronteiras entre RangeStart e RangeEnd.

Na prática, você configura o armazenamento para guardar os últimos 3 anos e a renovação para processar apenas os últimos 7 dias. Na primeira execução (digamos, 1º de setembro), o sistema carrega dados de 2023, 2024, 2025 e 2026 até aquela data. Na segunda execução (8 de setembro), ele processa apenas a semana anterior. Se as fronteiras de RangeStart e RangeEnd tiverem operadores conflitantes, a sobreposição não afeta só a renovação semanal, mas todos os períodos anteriores também, porque a lógica de separação é global.

Exemplo compacto de separação

Considere dois períodos consecutivos, com a fronteira em 2026-09-01 00:00:00:

  • Período anterior: Data >= 2026-08-01 e Data < 2026-09-01.
  • Período seguinte: Data >= 2026-09-01 e Data < 2026-10-01.

O registro exatamente igual a 2026-09-01 00:00:00 pertence somente ao segundo período. Se o período anterior usasse Data <= 2026-09-01 e o seguinte mantivesse Data >= 2026-09-01, esse instante seria aceito pelos dois filtros, reproduzindo o risco de duplicação na fronteira descrito pela fonte.[1]

O exemplo serve apenas para interpretar a igualdade nos limites. As datas concretas, a extensão do histórico e a faixa de renovação dependem da política definida para a tabela, incluindo os períodos de armazenamento e renovação.[2]

Detecção de mudanças e preservação do PBIX

Quando a detecção de mudanças é utilizada, ela exige uma coluna de data e hora diferente daquela empregada pelos parâmetros RangeStart e RangeEnd.[1] Assim, a coluna que delimita o intervalo temporal não deve ser tratada automaticamente como a coluna destinada a identificar mudanças.

Depois que a atualização incremental é configurada, o arquivo do Power BI não pode mais ser exportado do serviço, segundo a fonte fornecida. Por isso, o arquivo original criado no Power BI Desktop deve ser preservado.[1] Esse arquivo é a base disponível para manter os parâmetros, os filtros do Power Query e a política da tabela.

A preservação deve abranger a versão efetivamente usada na publicação. Sem esse original, a indisponibilidade de exportação descrita pela fonte limita a capacidade de recuperar, revisar ou modificar no Desktop aquela configuração incremental.[1]

Limite e contexto deste conteúdo

Este artigo trata somente da semântica das fronteiras, da aplicação dos filtros, da relação entre armazenamento e renovação e da conservação do arquivo Desktop. As fontes fornecidas não detalham todas as etapas de publicação, os requisitos de licenciamento ou os comportamentos específicos de cada origem de dados, portanto esses pontos não são ampliados aqui.

A visão geral do tema está em conteúdo relacionado do curso. Esta referência é apenas contextual e não substitui a documentação aplicável ao ambiente utilizado.

Perguntas frequentes

O que acontece se RangeStart e RangeEnd usarem ambos o sinal de igualdade?

Os registros que coincidem exatamente com um desses limites serão incluídos em dois períodos ao mesmo tempo. Isso viola o princípio de partição e causa duplicação. A fonte recomenda usar a forma semiaberta (>= em um lado, < no outro) para evitar essa intersecção.[1]

A detecção de mudanças substitui a necessidade de RangeStart e RangeEnd corretos?

Não. A detecção de mudanças usa uma coluna diferente para identificar registros alterados, mas não elimina o risco de sobreposição nas fronteiras criadas pelos parâmetros de intervalo. Ambas as mecânicas devem estar configuradas de forma independente e correta.[2]

Por que preservar o arquivo PBIX se a atualização incremental está no serviço?

Depois de ativar a atualização incremental, o Power BI não permite exportar o arquivo publicado. Se você precisar alterar os parâmetros, os filtros ou a política, terá de retornar ao arquivo Desktop original. Sem esse arquivo, fica impossível fazer modificações.[1]

Como sei se minha atualização está duplicando registros?

Verifique o total de registros esperado antes e depois da atualização. Se o número crescer além do previsto, especialmente nas datas-limite entre períodos, revise se RangeStart e RangeEnd estão ambos usando >= ou ambos usando <=. Mude um deles para < ou > para criar a separação.[1]

Fontes consultadas

Obras e aulas usadas na redação deste guia. Os números no texto levam a elas.

  1. Greg Deckler e Brett Powell. Microsoft Power BI Cookbook: Convert raw data into business insights with updated techniques, use cases, and best practices 3 capítulo 11
  2. Jack A. Hyman. Microsoft Power BI For Dummies capítulo 24

Continue lendo