DP-600: implementar Incremental Refresh em Power BI/ Fabric
Vou ensinar como implementar Incremental Refresh em conjuntos de dados Power BI (no contexto de Fabric). Esta competência é comum no DP-600: ajuda a optimizar os refreshes, reduzir tempo e custo, e é frequentemente exigida em cenários de produção.
O que precisas de saber
Incremental Refresh permite actualizar apenas o subconjunto de dados que mudou (a janela de refresh) em vez de recarregar toda a tabela. É especialmente útil para tabelas com histórico extenso (milhões de linhas) e funciona com duas componentes principais: filtros de data no Power Query e uma política de refresh definida no modelo.
Condições prévias essenciais:
- Uma coluna de data/hora (ou coluna de versão) para segmentar os dados por período.
- Parâmetros RangeStart e RangeEnd no Power Query que limitam os registos carregados.
- Espaço de trabalho em Power BI com capacidade Premium (ou Fabric), para aplicar políticas de Incremental Refresh no serviço.
Exemplo conceptual: armazenas 5 anos de histórico, mas só precisas de refrescar os últimos 30 dias. Configuras a política para "store" 5 anos, "refresh" 30 dias — o serviço reprocessa apenas as partições dos últimos 30 dias.
Na prática
Passos práticos para implementar Incremental Refresh (Power BI Desktop → serviço / Fabric):
- Criar parâmetros no Power Query: cria dois parâmetros DateTime chamados RangeStart e RangeEnd. Não lhes atribuas um valor fixo final — o Power BI substitui estes na publicação.
- Filtrar a tabela pela coluna de data: aplica um filtro utilizando RangeStart e RangeEnd. O filtro tem de ser reconhecível como um filtro de intervalo para que o motor aplique partições.
- Publicar/Carregar para o serviço: publica o ficheiro para um workspace com capacidade Premium (Fabric já inclui capacidade para modelos).
- Definir a política de Incremental Refresh: no Power BI Desktop, clica com o botão direito na tabela > Incremental refresh > define a janela para armazenamento e para refresh, e, opcionalmente, activa "Detect data changes" indicando a coluna que sinaliza alterações (por ex., LastModifiedDate).
- Validar: publica e observa as partições no serviço (no workspace com capacidade). Verifica os registos de refresh e o tempo consumido.
Exemplo mínimo de M (Power Query) para aplicar o filtro com parâmetros:
let
// Estes parametros devem existir (Type: DateTime)
RangeStart = #datetime(2023, 1, 1, 0, 0, 0),
RangeEnd = #datetime(2026, 1, 1, 0, 0, 0),
Source = Sql.Database("serverName", "dbName", [Query="SELECT OrderDate, Amount FROM Sales"]),
// Aplicar filtro de intervalo usando os parâmetros
Filtered = Table.SelectRows(Source, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
Filtered
Notas práticas:
- Cria os parâmetros com tipo DateTime (não Text).
- Evita transformar a coluna de data de forma que impeça o filtro inicial (o filtro deve ocorrer antes de transformações que alterem a granularidade).
- Se activares "Detect data changes", escolhe uma coluna que se actualize quando há alteração (Timestamp ou identidade incremental).
Erros comuns
1) Filtrar depois de transformação: aplicar o filtro RangeStart/RangeEnd após operações que alterem a coluna de data (por ex., separar, alterar fuso horário) pode impedir a deteção da partição — coloca sempre o filtro cedo no fluxo do Power Query.
2) Parâmetros mal tipados: RangeStart/RangeEnd como Text ou Date (sem hora) podem causar comportamentos inesperados. Usa DateTime quando a tua coluna tem horas.
3) Assumir que funciona em workspaces sem capacidade: Incremental Refresh requer capacidade Premium (ou o ambiente Fabric adequado). Tentar configurar e publicar num workspace sem capacidade resulta em erros ou em fallback para full refresh.
Como praticar
Para treinar esta competência de forma segura e alinhada com o DP-600:
- Utiliza o Practice Assessment oficial da Microsoft (gratuito) para avaliar as áreas do exame — procura "DP-600 Practice Assessment" no Microsoft Learn.
- Segue o guia de estudo oficial do DP-600 no Microsoft Learn (gratuito) para mapear esta competência nas "skills measured".
- Cria um laboratório local: uma base de dados de exemplo (SQL Server/ Azure SQL) com tabela histórica, monta um Power BI Desktop com RangeStart/RangeEnd, publica num workspace Fabric/Premium e observa partições e performance.
Estas fontes oficiais são gratuitas e permitem confirmar que estás a praticar as acções que o exame pretende medir.
Em resumo
- Incremental Refresh reduz tempo e custo ao actualizar só o intervalo necessário do conjunto de dados.
- Exige parâmetros RangeStart/RangeEnd no Power Query, uma coluna de data/versão e capacidade Premium/Fabric.
- Configura o filtro cedo no ETL, usa DateTime correcto e considera "Detect data changes" para actualizações delta.
- Pratica com laboratórios e usa o Practice Assessment e o guia de estudo oficial da Microsoft (ambos gratuitos) para validar a tua preparação.