TodoBI - Business Intelligence, Big Data, ML y AI TodoBI - Business Intelligence, Big Data, ML y AI

Rendimiento de consultas MDX en distintos modelos

Recientemente hemos estado haciendo una comparativa en Stratebi de rendimiento de consultas MDX sobre un modelo de datos en estrella y un modelo de datos en tabla plana de un cubo “estándar”. La comparativa se ha basado en medir los tiempos de ejecución de distintas consultas MDX para distintos tamaños de tablas de hechos (desde 10.000 hasta 1.000.000 de registros).

Los resultados (ver gráfico) han determinado que hasta los 10.000 re gistros los dos modelos se comportan de forma similar tardando menos de un segundo en ambos casos. Para valores superiores de número de registros sí es aconsejable utilizar un modelo en estrella para representar los datos. Os dejamos la información de la prueba. Descargar documento de pruebas .

1 Datos

Dimensiones y medidas de los datos:

Dimensión

Niveles

Formato

Geografía

Comunidad Autónoma - Provincia

Texto

Cliente

Nombre

Texto

Tiempo

Fecha

Date (yyyy-mm-dd hh:mm :ss)

Medida

Formato

Rango

Horas

Entero

0 – 1000

Importe

Entero

0 – 12.000.000

Número de registros en la tabla de hechos usadas para las pruebas:

- 1.000.000

- 250.000


2 Software

- Dos maquinas virtuales con SO Ubuntu 10.04 64 bits sobre un sistema operativo base XEN Cloud 1.0.

- Máquina virtual con Pentaho 3.7

- Máquina virtual para la base de datos MySQL

3 Modelos a comparar

Los dos modelos a comparar son los siguientes:


3.1 Modelo en estrella

3 tablas de dimensiones y una tabla de hechos.

Tablas

Número de registros

d_geo

50

d_clientes

23

d_tiempo

1,880

h_hechos

1.000.000

3.2 Modelo en tabla plana

Una sola tabla con 1.000.000 de registros.

4 Consultas MDX y SQL generadas

4.1 Descripción de las consultas MDX

Para hacer la comparativa se han utilizado tres consultas MDX

que se detallan a continuación:

- Consulta 1: vista inicial de las dimensiones agregadas y medida horas.

- Consulta 2: vista con el primer nivel de la dimensión geografía desplegado y medida horas.

- Consulta 3: vista con la dimensión tiempo desplegada en un elemento del segundo nivel de la dimensión geografía y con la dimensión cliente desplegada en un elemento del primer nivel de la dimensión geografía. La medida usada es horas.

5 Tiempos de ejecución

Se han realizado dos pruebas. La primera, para 1.000.000 de registros en la tabla de hechos, calcular el tiempo de ejecución de las tres consultas con los dos modelos. Los resultados (en segundos) se pueden observar a continuación y corresponden a la media de 5 mediciones individuales.


Consulta 1

Consulta 2

Consulta 3

Estrella

0,62

4,56

24,02

Tabla plana

2,9

22,86

60,63

La segunda prueba consiste en, para la consulta 3, ejecutarla para distintos tamaños de la tabla de hechos y en los dos modelos. Los resultados (en segundos) corresponden a la media de cinco mediciones.


10k

50k

100k

250k

500k

1000k

Estrella

0,17

0,59

1,05

2,89

5,13

24,02

Tabla plana

0,56

2,58

4,9

13,15

24,26

60,63


6 Conclusiones

6.1 Observaciones

Tamaño de los datos

- Modelo en estrella: 21,2 MB

- Modelo en tabla plana: 73,6 MB

Preparación del entorno

En el modelo en estrella hay que crear el esquema de mondrian. En el caso de utilitzar una tabla plana no hay que crearlo pero usando el Administrador de Data Sources se debe modificar el esquema (niveles).

Número de consultas SQL por consulta MDX

Para ambos modelos se realiza el mismo número de consultas SQL por cada consulta MDX utilizada en la comparativa.

Consultas SQL generadas

- Para consultar información de la tabla de hechos, el modelo de tabla plana utiliza una nueva consulta (select provincia, comunidad, fecha, nombre_cliente, horas, importe from hechos) dentro de la cláusula from (ver consulta SQL generada para la consulta MDX 1).

- Las consultas que requieren de sólo una dimensión sin la tabla de hechos en el modelo de estrella, utilizan la tabla de hechos entera en el modelo de tabla plana (ver consulta SQL 1 generada para la consulta MDX 2).

- Las consultas que requieren hacer un join de una o más dimensiones y la tabla de hechos en el modelo de estrella, requieren sólo de la tabla de hechos en el modelo de tabla plana obviando la cláusula where (ver consulta SQL 3 generada para la consulta MDX 2).

6.2 Conclusiones

Después de realizar la primera prueba de ejecución se ha podido comprobar que el modelo en estrella es más rápido debido al hecho de tener la información separada por dimensiones y hechos y seleccionar en todo momento el mínimo número de tablas para las consultas SQL a realizar.

Con la segunda de las pruebas se ha querido encontrar el límite de registros para el cual la diferencia de tiempo entre la utilización de un modelo u otro es despreciable. Tal y como se puede ver en el gráfico , hasta los 10.000 registros los dos modelos se comportan de forma similar tardando menos de un segundo en ambos casos. Para valores superiores de número de registros sí es aconsejable utilizar un modelo en estrella para los datos.