Serie de tiempo

Esta información se aplica tanto a los libros de trabajo como a los paneles de control clásicos.

¿Funciones de serie temporal o funciones de filtro?

Las funciones de serie temporal Ago y Todate ofrecen una manera simple de crear métricas para calcular year-ago, year-to-date, etc., y este método funciona correctamente para los informes de usuario de negocio. Sin embargo, estas funciones generan consultas complejas que tienen un costo significativo sobre el rendimiento. Además, cada vez que se utiliza una de estas funciones en un informe, se genera una subconsulta adicional utilizando incluso más recursos en la base de datos.

En los paneles de control clásicos, en lugar de utilizar funciones de serie de tiempo, puede obtener normalmente el mismo resultado utilizando las métricas base con la función Filter para filtrar por el período de tiempo apropiado. Este método podría ser demasiado complejo para los informes de usuario de negocio, pero funciona muy bien en los paneles de control predefinidos por el equipo de TI. Mediante este método, el SQL físico generado es mucho más simple y más eficiente, y no requiere una subconsulta adicional. Esto significa que la consulta SQL será más rápida y utilizará menos recursos en la base de datos, lo que reduce el uso global de CPU de base de datos y las entradas/salidas.

A continuación se muestra un ejemplo de la consulta física que se genera cuando utiliza tanto la métrica base como la métrica Month Ago en el mismo informe. Se generan dos consultas:

A continuación se muestra la descripción de GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg
.jpg

En cambio, este es el SQL que se genera cuando se utiliza una función Filter. Se genera una única consulta , y esta es mucho más simple:

A continuación se muestra la descripción de GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg
.jpg

Cómo se implanta esto en una panel de control con peticiones de datos

En la mayoría de las implantaciones, el panel de control incluye una petición de datos para que los usuarios puedan seleccionar el mes que buscan. El primer paso es identificar los períodos de tiempo por los que necesitamos filtrar según la selección de un usuario.

En este ejemplo simple, se asume que la dimensión de calendario incluye una columna Julian Period Number porque hace que el cálculo sea mucho más sencillo. Esto también es factible sinJulian Period Number pero requeriría fórmulas mucho más complejas para calcular el período de tiempo seleccionado.

En primer lugar, la petición de datos de Month debe rellenar una variable de presentación (MonthSelected en el ejemplo siguiente). A continuación, creamos una petición de datos de panel de control independiente para recuperar Julian Period Number y colocarlo en otra variable (PeriodNumberSelected). Esta segunda petición de datos no se muestra al usuario final, sino que se oculta en el panel de control y el valor se calcula automáticamente según la variable MonthSelected. Consulte el ejemplo siguiente.

  1. Modifique la petición de datos de Month para agregar la variable de presentación.

    A continuación se muestra la descripción de GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.jpg
    .jpg

  2. Cree una petición de datos de panel de control independiente para Julian Period Number.

    A continuación se muestra la descripción de GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.jpg
    .jpg

  3. Edite las propiedades del panel de control y haga clic en Filtros y variables.

    A continuación se muestra la descripción de GUID-39A7720B-5345-418B-BDEE-33BC7426FAF0-default.jpg
    .jpg

  4. Agregue la petición de datos de Julian Period.

    A continuación se muestra la descripción de GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg
    .jpg

  5. A continuación, en el análisis, suprima el filtro global en la columna Month y utilice las funciones de filtro de fórmulas de columna basadas en Julian Period Number según sea necesario. A continuación se muestran algunos ejemplos:

    Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})

    Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)

    Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)

    Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})

Cómo se implanta esto en un libro de trabajo con parámetros

Se puede aplicar el mismo principio en un libro de trabajo. Las peticiones de datos y las variables de presentación se sustituyen por un filtro y parámetros de panel de control.

Cree tres parámetros: MonthSelected, PeriodNumberSelected y YearSelected. Solo se muestra el parámetro MonthSelected en el lienzo en un filtro de panel de control.

Los posibles valores del parámetro MonthSelected se definen según un SQL lógico seleccionado todos los meses.

Para los parámetros PeriodNumberSelected y YearSelected, los posibles valores no se rellenan. Solo se rellena el valor inicial con una consulta lógica filtrada según el valor de MonthSelected. Consulte los ejemplos siguientes.

A continuación se muestra la descripción de GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg
.jpg

A continuación se muestra la descripción de GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg
.jpg