Optimizando las Consultas

Una de las características más importantes de los datamarts de O3 es la posibilidad de manejar jerarquías para las dimensiones. Las jerarquías le permiten al usuario analizar la información no sólo desde diferentes perspectivas, sino también en diferentes niveles de detalle.

En la definición del modelo multidimensional de un datamart se definen las jerarquías relacionadas con cada una de sus dimensiones, especificando los posibles niveles de detalle que el usuario podrá consultar.

Para una dimensión Fecha, por ejemplo, pueden definirse los niveles Año, Trimestre, Mes y Semana, para que el usuario pueda analizar la información en cualquiera de estos niveles del datamart.

Es importante considerar que la información obtenida de las fuentes para construir un datamart se da siempre para un nivel en particular (nivel base o de entrada) en cada una de las dimensiones que forman el datamart. En el ejemplo de la dimensión Fecha este nivel puede ser Semana.

Cada vez que un usuario consulta un nivel por encima del nivel de entrada para una o más dimensiones (Año, Trimestre o Mes en el ejemplo), O3 realiza una agregación para resolver la consulta (a través de la operación de agregación definida para la medida consultada) desde el nivel de entrada o base de datos en cada una de las dimensiones (Semana por ejemplo). Dependiendo del número de registros manejados por el datamart, las operaciones de agregación pueden involucrar grandes cantidades de registros, y por lo tanto afectar negativamente el tiempo de respuesta para ciertas consultas.

La redundancia es el mecanismo que hace posible la inclusión de información previamente calculada en el momento que se hace la consulta (cuando el datamart se construye, por ejemplo) para niveles de agregación por encima del nivel base o de entrada.

De esta forma, si el usuario consulta un nivel para el cual se ha incluido redundancia (nivel de redundancia) no será necesario hacer una agregación ya que el cálculo ya existirá almacenado en el datamart, agilizando los tiempos de respuesta.

Por otro lado, si las consultas se hacen por encima de un nivel precalculado, O3 usará estos niveles para la agregación en vez de los registros de nivel base.

Como la redundancia consiste en información precalculada que se almacena como parte del datamart, el usuario debe observar que esta inclusión afectará el tamaño final del mismo. Por lo tanto, la cantidad de redundancia incluida en el datamart debe ser controlada para evitar que ocupe demasiado espacio.

La tarea de definir la redundancia apropiadamente consiste en alcanzar un equilibrio entre el espacio extra ocupado por el datamart como consecuencia de la redundancia y el beneficio que ofrece a los tiempos de respuesta de las consultas. En la mayoría de los casos, unos pocos niveles de redundancia cuidadosamente seleccionados representan una gran mejoría para los tiempos de respuesta, con muy poco espacio de almacenamiento extra.

Definición de Redundancia

La redundancia de un datamart es la selección de los niveles para las dimensiones en las que los valores serán precalculados. La redundancia en un datamart se definirá por un conjunto de niveles de redundancia.

Niveles de Redundancia

Un nivel de redundancia debe especificar un nivel para cada una de las dimensiones del datamart. Los datos correspondientes a la combinación de niveles especificados se precalcularán en el datamart.
Si al consultar el datamart el usuario se encuentra en el nivel de redundancia para cada dimensión, los datos se calcularán de antemano y no será necesario hacer cálculos para responder a la consulta.
Además, si en una o más dimensiones el usuario se encuentra por encima del nivel de redundancia, puede usarse para el cálculo reduciendo el número de registros y como consecuencia, el tiempo de respuesta.

Ejemplo

Consideremos un modelo multidimensional arbitrario con las siguientes dimensiones:

Dimensión

Número de niveles

Dimension1

4

Dimension2

3

Dimension3

2

Dimension4

3

Estos son ejemplos de niveles de redundancia:

(3, 2, 1, 2)
(3, 1, 1, 1)
(2, 2, 1, 2)

(warning)
Para la definición de una redundancia los niveles de cada dimensión están numerados en orden ascendente, siendo 0 el nivel más bajo en la jerarquía.
Para evaluar el impacto de un nivel de redundancia en un datamart, el usuario debe considerar que cada nivel de redundancia generará nuevos registros en el datamart.
Cuanto más altos sean los niveles que forman el nivel de redundancia, más bajo será en número de registros generados.