DP-600: implementar Incremental Refresh en Power BI/ Fabric
Te voy a enseñar cómo implementar Incremental Refresh en conjuntos de datos Power BI (en el contexto de Fabric). Esta habilidad es común en el DP-600: ayuda a optimizar los refreshes, reducir tiempo y coste, y se exige con frecuencia en escenarios de producción.
Qué necesitas saber
Incremental Refresh permite actualizar solo el subconjunto de datos que ha cambiado (la ventana de refresh) en lugar de recargar toda la tabla. Es especialmente útil para tablas con historial extenso (millones de filas) y funciona con dos componentes principales: filtros de fecha en Power Query y una política de refresh definida en el modelo.
Condiciones previas esenciales:
- Una columna de fecha/hora (o columna de versión) para segmentar los datos por período.
- Parámetros RangeStart y RangeEnd en Power Query que limitan los registros cargados.
- Espacio de trabajo en Power BI con capacidad Premium (o Fabric), para aplicar políticas de Incremental Refresh en el servicio.
Ejemplo conceptual: almacenas 5 años de historial, pero solo necesitas refrescar los últimos 30 días. Configuras la política para "store" 5 años, "refresh" 30 días — el servicio reprocesa solo las particiones de los últimos 30 días.
En la práctica
Pasos prácticos para implementar Incremental Refresh (Power BI Desktop → servicio / Fabric):
- Crear parámetros en Power Query: crea dos parámetros DateTime llamados RangeStart y RangeEnd. No les asignes un valor fijo final — Power BI sustituirá estos en la publicación.
- Filtrar la tabla por la columna de fecha: aplica un filtro utilizando RangeStart y RangeEnd. El filtro debe ser reconocible como un filtro de rango para que el motor aplique particiones.
- Publicar/Cargar al servicio: publica el archivo en un workspace con capacidad Premium (Fabric ya incluye capacidad para modelos).
- Definir la política de Incremental Refresh: en Power BI Desktop, haz clic con el botón derecho en la tabla > Incremental refresh > define la ventana para almacenamiento y para refresh, y, opcionalmente, activa "Detect data changes" indicando la columna que señala cambios (por ej., LastModifiedDate).
- Validar: publica y observa las particiones en el servicio (en el workspace con capacidad). Revisa los registros de refresh y el tiempo consumido.
Ejemplo mínimo de M (Power Query) para aplicar el filtro con 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ácticas:
- Crea los parámetros con tipo DateTime (no Text).
- Evita transformar la columna de fecha de forma que impida el filtro inicial (el filtro debe ocurrir antes de transformaciones que cambien la granularidad).
- Si activas "Detect data changes", elige una columna que se actualice cuando hay cambio (Timestamp o identidad incremental).
Errores comunes
1) Filtrar después de transformación: aplicar el filtro RangeStart/RangeEnd tras operaciones que alteren la columna de fecha (por ej., dividir, cambiar zona horaria) puede impedir la detección de la partición — coloca siempre el filtro al inicio del flujo de Power Query.
2) Parámetros mal tipados: RangeStart/RangeEnd como Text o Date (sin hora) pueden causar comportamientos inesperados. Usa DateTime cuando tu columna tiene horas.
3) Suponer que funciona en workspaces sin capacidad: Incremental Refresh requiere capacidad Premium (o el entorno Fabric adecuado). Intentar configurar y publicar en un workspace sin capacidad resulta en errores o en fallback a full refresh.
Cómo practicar
Para entrenar esta habilidad de forma segura y alineada con el DP-600:
- Utiliza el Practice Assessment oficial de Microsoft (gratuito) para evaluar las áreas del examen — busca "DP-600 Practice Assessment" en Microsoft Learn.
- Sigue la guía de estudio oficial del DP-600 en Microsoft Learn (gratuito) para mapear esta competencia en las "skills measured".
- Crea un laboratorio local: una base de datos de ejemplo (SQL Server/ Azure SQL) con tabla histórica, monta un Power BI Desktop con RangeStart/RangeEnd, publica en un workspace Fabric/Premium y observa particiones y rendimiento.
Estas fuentes oficiales son gratuitas y permiten confirmar que estás practicando las acciones que el examen pretende medir.
En resumen
- Incremental Refresh reduce tiempo y coste al actualizar solo el intervalo necesario del conjunto de datos.
- Requiere parámetros RangeStart/RangeEnd en Power Query, una columna de fecha/versión y capacidad Premium/Fabric.
- Configura el filtro pronto en el ETL, usa DateTime correcto y considera "Detect data changes" para actualizaciones delta.
- Practica con laboratorios y usa el Practice Assessment y la guía de estudio oficial de Microsoft (ambos gratuitos) para validar tu preparación.