Siempre que hablamos de este tipo de sistemas, aparece este término, incluso nos hemos visto en la necesidad de usarlo anteriormente al hablar del almacenamiento. Vamos a incluir aquí, tanto una definición como ejemplos de lo que son las agregaciones.

Las agregaciones son el núcleo del almacén analítico, con ellas obtenemos una enorme ganancia de rendimiento en las consultas, evitando leer gran número de celdas para obtener los resultados solicitados.

Son datos totalizados, ya pre-calculados y almacenados, para distintos niveles del cubo. Se guardan en celdas en las coordenadas especificadas por las dimensiones. No todas las agregaciones se calculan y almacenan, pero sí los metadatos de sus definiciones. El número de agregaciones tiene un crecimiento exponencial, por lo que el almacenamiento de todas ellas supondría también un crecimiento exponencial del tamaño del cubo y del tiempo de procesamiento.

Figura 1 – Agregaciones (Aggregations)

Figura 1 – Agregaciones (Aggregations)

Consideramos como datos base, los valores de cruce entre los niveles más bajos de cada dimensión, veamos un ejemplo:

  • Dimensión Tiempo, jerarquía con niveles Todos, Año, Mes, Día.
  • Dimensión Producto, jerarquía con niveles Todos, Familia, SubFamilia y Producto.
  • Dimensión Geografía, jerarquía con niveles Todos, País, Provincia y Población.

En este caso el cruce de datos base sería a nivel de Día, Producto y Población. A partir de ahí, los niveles Todos, Año y Mes para el Tiempo; Todos, Familia y SubFamilia para el Producto; y Todos, País y Provincia para la Geografía, serán agregaciones que se pueden obtener a partir de los datos base. El Año lo obtendría sumando los 365 días o los 12 meses, según el diseño de agregaciones que tenga. El Todos (de la dimensión Producto), se obtendría sumando todas las Familas, todas las SubFamilias, o todos los Productos, dependiendo igualmente de las agregaciones que tengamos almacenadas.

Como puede ver el lector es fundamental conocer el concepto de Agregaciones, y su diseño y almacenamiento. Debe tener también en cuenta que cuantas más agregaciones tengamos, más rápida será la ejecución de las consultas, y por el contrario más lento será el tiempo de procesamiento y mayor el tamaño necesario para el almacenamiento, dado que habrá un mayor número de celdas pre-calculadas y almacenadas en el cubo. A fin de tener un balance entre el procesamiento de los cubos y el tiempo de respuesta, Analysis Services pre-calcula y guarda las agregaciones escogidas y genera las restantes al recibir la consulta.

No es el objetivo de este capítulo profundizar en el diseño de las agregaciones del cubo, sino simplemente que desde el principio, el lector tenga muy claro lo importante que es este concepto y las consecuencias que puede tener en el rendimiento de las consultas, en el tamaño de la base de datos y en los tiempos de procesamiento.

 

Salvador Ramos

Consultor, Formador y Mentor en Business Intelligence. SQL Server MVP.
Director de Formación en SolidQ.
Microsoft MCSE 2012: Business Intelligence.

Latest posts by Salvador Ramos (see all)