Actualización incremental en Power BI. Configuración desde Power BI Desktop

Mar Lizana
6 min readOct 23, 2023

--

La configuración del refresco incremental se puede hacer de varias maneras. Para este artículo nos centraremos en como configura esta política desde Power BI Desktop.

Seguimos con nuestra serie de artículos:

Ahora sí, metámonos en el meollo del asunto.

¿Qué necesitas para configurar el refresco incremental?

Asegúrate de que tus datos están preparados para admitir una actualización incremental. Deberás tener una columna en tus datos que sea de tipo fecha/hora.

Vamos a Power Query

  1. Crear los parámetros RangeStart y RangeEnd

Los datos de tabla se filtran mediante los parámetros de fecha y hora de Power Query con los nombres reservados RangeStart y RangeEnd, que distinguen mayúsculas de minúsculas. Al configurar inicialmente la actualización incremental en Power BI Desktop, los parámetros se usan para filtrar solo un período de datos que se va a cargar en el modelo.

  • Para crearlos deberemos ir a Administrar parámetros>Parámetro nuevo
Administrar parámetros
  • Se te abrirá una ventana donde podrás configurar los parámetros.

¡RECUERDA! RangeStart y RangeEnd son palabras reservadas que deberás escribir tal cual. ¡TAL CUAL!

Administrar parámetros. Configuración

Puedes ir al Editor avanzado para comprobar que tus parámetros tienen esta pinta.

Puedes ir al Editor avanzado pulsando botón derecho sobre el parámetro que te aparece en la columna de Consultas o desde la cinta de inicio.

Editor avanzado

2. Configurar la columna de actualización

  • Debes especificar la columna que se utilizará para identificar las filas nuevas o modificadas. Esta columna se conoce como “Columna de actualización.” Esta columna debe ser una columna en tu tabla que cambie cada vez que haya datos nuevos o modificados. Ahora deberemos usar esos parámetros a modo de filtro en nuestra columna de tipo fecha/hora que vayamos a usar para configurar el refresco.
Filtro personalizado → Filtrar filas

El resultado en código M deberá ser algo parecido a esto:

#"Filas filtradas" = Table.SelectRows(Origen, each [DATE] > RangeStart and [DATE] <= RangeEnd)

Vamos a Power BI Desktop

Una vez que se aplican los filtros y se carga un subconjunto de datos en el modelo, se define una directiva de actualización incremental para la tabla. Para ello deberemos ir a la tabla y hacer botón derecho.

En la parte superior tenemos un mensajes con información significativa:

Una vez se aplique la directiva no podrás descargar de nuevo el archivo .pbix del servicio.

1.Seleccionar tabla

Selecciona la tabla de hechos donde hayas aplicado el filtro con los parámetros RangeStart y RangeEnd.

2. Establecer intervalos de importación y actualización

Mueve el control deslizante Actualizar esta tabla de forma incremental y te aparecerán el resto de opciones. Si el control deslizante está deshabilitado, significa que la tabla no incluye un filtro basado en los parámetros RangeStart y RangeEndo el origen de datos no permite la actualización incremental.

→ Iniciando de datos de archivo. Aquí deberás especificar el período de almacenamiento histórico que quieras incluir en el conjunto de datos. Todas las filas con fechas dentro de este periodo se cargarán.

→ Iniciando actualización incremental de datos. Y aquí especificar el período de actualización. Todas las filas con fechas de este periodo se actualizarán cada vez que se realice una operación de actualización manual o programada en el servicio.

¿No es maravilloso? Hemos pasado de tener que cargar dos años de datos cada vez que se actualiza a solo un mes.

3. Elegir configuración opcional

Y ahora sí, mi parte favorita. Ese señor me representa cuando aprendí que esto se podía hacer.

→ Obtenga los datos más recientes en tiempo real con DirectQuery (solo Premium) .Esta configuración hace que la directiva de actualización incremental agregue una partición de DirectQuery a la tabla. Si activamos esta opción, por defecto nos marcará Actualizar solo periodos completos. También podemos observar como el periodo que nos indicaba el Iniciado de la actualización incremental varia.

→ Actualizar solo períodos completos. Creo que con un ejemplo se puede ver mejor. Imagina un contexto en el que trabajas con la información de un sistema financiero donde los datos del mes anterior se aprueban pasado el inicio del siguiente. Puede establecer el período de actualización en un mes y programar la actualización para que se ejecute un día determinado del mes siguiente. Así, con esta opción activada, los datos de enero se actualizarían el día que configuraras de febrero.

Esta configuración también cambia el rango del inicio de la actualización incremental.

→ Detectar cambios de datos. Es esencial detectar cambios en los datos. Para ello necesitamos especificar una columna de fecha y hora. Esta columna, estará destinada a identificar y actualizar días con cambios, no debe coincidir con la usada para particionar datos. La columna designada debe ser persistente y almacenarse en la memoria caché. En la documentación de Microsoft te dan más detalles sobre esta configuración.

4. Revisar y aplica

¿Y en el Servicio tengo que hacer algo?

Una vez que se publica el modelo, el servicio usa la directiva para crear y administrar particiones de tabla y realizar operaciones de actualización.

Para terminar

Para saber si se ha configurado bien la directiva de refresco incremental hasta hace nada debíamos ayudarnos de herramientas externas como Tabular Editor. Ahora, desde la vista de modelo

Para terminar

Para saber si se ha configurado bien la directiva de refresco incremental podemos ayudarnos de herramientas externas como Tabular Editor. En unas semanas veremos como configurarlo desde allí, de momento, os enseño la pinta que debería tener la configuración que hemos creado.

Como se ven las particiones dentro de la tabla
Detalles de una partición en modo Import y de la última en modo DirectQuery

--

--

Mar Lizana

Data & Analytics Lead Engineer @NTT Data | Microsoft Data Platform MVP