Actualización incremental en Power BI. Configuración desde Tabular Editor 2

Mar Lizana
5 min readNov 21, 2023

--

Como ya hemos visto, el refresco incremental nos permite es hacer trocitos nuestra tabla de hechos para actualizar solo los datos más recientes. Para ello se utiliza un esquema de organización en el que los datos de una tabla se dividen entre varios objetos de almacenamiento llamados particiones. Esto permite mejorar el rendimiento de las consultas, optimizar el uso del espacio y facilitar el mantenimiento de los datos.

Hemos configurado el refresco incremental utilizando Power BI Desktop, y ahora exploraremos cómo se hace en Tabular Editor 2. Si aún no cuentas con Tabular Editor, puedes descargar la versión 2 de forma gratuita desde este enlace.

Si llegas aquí por primera vez te recomiendo que le eches un ojo a los dos posts anteriores:

Vamos a la chicha de verdad

Conéctate al modelo semántico

Para acceder al modelo semántico y configurar las particiones, utilizaremos el XMLA endpoint. Si este concepto es nuevo para ti, te recomiendo que pases por aquí.

Para comenzar, copiaremos la URL del XMLA endpoint y nos dirigiremos a la sección File en Tabular Editor 2. Allí, seleccionaremos Open y elegiremos la opción From DB. En este punto, pegaremos la URL proporcionada y se nos solicitará iniciar sesión.

Una vez que hayamos establecido la conexión, el modelo semántico se mostrará en la interfaz de Tabular Editor 2 de la siguiente manera:

Crea los parámetros RangeStart y RangeEnd

Para llevar a cabo la configuración en Tabular Editor 2, es esencial crear los parámetros RangeStarty RangeEnd. Igual que el Desktop. Esto se logra accediendo a la sección de Shared Expressions y creando una nueva expresión compartida.

En la creación de la nueva expresión compartida, establecemos la expresión de la siguiente manera:

Nueva Shared Expression
#datetime(2023, 6, 9, 0, 0, 0) meta [IsParameterQuery=true, Type="DateTime", IsParameterQueryRequired=true]

Al configurar esta expresión, en la ventana correspondiente, asegúrate de establecer la propiedad Kind en M.

Kind=M

Configuración de la política de refresco

Para proceder con la habilitación de la actualización incremental en la tabla seleccionada, sigue estos pasos:

  1. EnableRefreshPolicy. Asegúrese de seleccionar la tabla deseada y establecer la propiedad EnableRefreshPolicy en True. Se te mostrarán nuevos parámetros que procederemos a configurar.

2. Configuración de la política de actualización incremental

  • IncrementalGranularity. Define la granularidad de la ventana incremental del refresco. En este caso lo establecemos a Day.
  • IncrementalPeriods. Indica el número de períodos de la granularidad especificada en los que se deben refrescar los datos. Le indicamos que queremos que actualice los datos día a día.
  • IncrementalPeriodsOffset. Si se establece en -1, solo se refrescarán periodos completos.
  • Mode. Indica si se trata de una política de actualización Import estándar o híbrida, donde la última partición es DirectQuery.
  • PollingExpression. Proporciona una expresión M para detectar cambios en los datos.
  • RollingWindowGranularity. Especifica la granularidad de la ventana de histórico. Aquí le indicamos que queremos Year.
  • RollingWindowPeriods. Determina el número de períodos de la granularidad especificada en los que se deben archivar los datos. Con el 2 le marcamos la cantidad de años que debe haber en nuestro histórico.
  • SourceExpression. Especifica una expresión M que se añadirá a las particiones creadas. Esta expresión debe utilizar los parámetros RangeStart y RangeEnd para filtrar los datos en la fuente.

Recuerda que el = debe aplicarse solo a uno de los dos para evitar duplicados en tus datos.

Guarda el modelo semántico

Aplica la política de refresco

Haga clic con el botón derecho en la tabla y elija Apply Refresh Policy.

¡Y eso es todo! ¡Ahora tienes las particiones creadas según la directiva que hayas especificado!

Como le hemos indicado en Mode que sea Hybrid, la última partición será en modo DirectQuery.

El siguiente paso sería actualizar los datos de estas particiones. Esto lo puedes hacer de dos maneras:

  1. Utilizando el Servicio Power BI. Puedes actualizar los datos de las particiones directamente desde el servicio Power BI.
  2. Actualización por lotes mediante XMLA/TMSL: Con SQL Server Management Studio o el scripting del Editor Tabular para actualizar las particiones a través de XMLA/TMSL.

Elije el método que mejor se adapte a sus necesidades y ya tendrás los datos en las particiones para mantener su modelo siempre actualizado.

Referencias

Configurar la actualización incremental | Documentación del editor tabular (tabulareditor.com)

Configurar actualización incremental con el editor tabular — YouTube

Actualización incremental | Documentación del editor tabular (tabulareditor.com)

Set Up a New Refresh Policy | Tabular Editor Documentation

--

--

Mar Lizana

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