En este tema se explica la diferencia entre las funciones de serie de tiempo y las funciones de filtro y cómo implantar funciones de filtro. Esta información se aplica tanto a los libros de trabajo como a los paneles de control clásicos.
Funciones de serie de tiempo frente a funciones de filtro
Las funciones de serie de tiempo Ago
y Todate
ofrece una forma simple de crear métricas para calcular year-ago, year-to-date,
etc. Este método funciona muy bien para los informes de usuario empresarial; 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 empresarial, pero funciona muy bien en los paneles de control predefinidos por el equipo de TI. Con este método, el código 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 se ejecuta con más rapidez y utiliza menos recursos en la base de datos, lo que reduce el uso global de CPU de base de datos y las llamadas de entrada-salida.
En la siguiente figura se muestra un ejemplo de la consulta física que se genera cuando utiliza tanto la métrica base como la métrica Ago
de mes en el mismo informe. Se generan dos consultas.
En la siguiente imagen se muestra el código SQL que se genera para una única consulta cuando utiliza una función Filter
en su lugar.
Implantación de funciones de filtro en un 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 necesita filtrar según la selección de un usuario.
En este ejemplo, la dimensión de calendario incluye la columna Julian Period Number
porque esta hace que el cálculo sea 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.
Month
para agregar la variable de presentación (MonthSelected
).
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
.
Julian Period
.
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})
Implantación de funciones de filtro en un libro de trabajo con parámetros
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 una consulta SQL lógica que selecciona todos los meses.
Para los parámetros PeriodNumberSelected y YearSelected, los posibles valores no se rellenan.
.jpg
Solo se rellena el valor inicial con una consulta lógica filtrada según el valor de MonthSelected.
.jpg