Cubos

Definiciones
sábado, 16 de febrero de 2008

Una de las formas más populares de analizar la información es mediante el uso de cubos OLAP (o bases de datos multidimensionales). Básicamente, un cubo es una estructura de datos organizada mediante jerarquías. Cada indicador se puede evaluar en cualquiera de los niveles de las jerarquías. Así, por ejemplo, se pueden obtener las "ventas" a nivel diario, mensual, o a anual, para un cliente, una provincia, o un país…

El uso de cubos OLAP tiene dos ventajas fundamentales:

  • Facilidad de uso. Una vez construido el cubo, el usuario de negocio puede consultarlo con facilidad, incluso si se trata de un usuario con escasos o nulos conocimientos técnicos. La estructura jerárquica es sumamente fácil de comprender para la mente humana, y si ésta coincide con el modelo de negocio, los resultados suelen ser espectaculares, ya que el cubo se convierte en una gran "tabla dinámica" que el usuario puede consultar en cualquier momento.
  • Rapidez de respuesta. Habitualmente, el cubo tiene precalculados las distintas agregaciones, por lo que los tiempos de respuesta son muy cortos. Si el cubo está bien diseñado, resultará igual de rápido consultar las ventas de una ciudad, o las ventas de todo el país, o incluso el total de ventas de la compañía.

Sin embargo, no todo son ventajas… Estos son algunos de los inconvenientes:

  • El cubo es estructura adicional de datos que mantener y actualizar, eso supone un gasto extra de recursos (servidores, discos, procesos de carga…).
  • El modelo de negocio no siempre se adapta bien en un modelo jerárquico. Por poner algunos ejemplos típicos: Una semana no pertenece a un único mes, o las zonas de venta corporativas no tienen porqué coincidir con la estructura provincial de cada país, o varios responsables pueden encargarse de una misma tienda, o distintos departamentos de la compañía pueden utilizar distintas agrupaciones de los productos... Estas casuísticas, que pueden parecer triviales, son habituales en cualquier compañía, y dificultan enormemente la construcción y uso de los cubos OLAP…

La alternativa a los cubos son las habituales bases de datos relacionales. En estos casos, se suele hablar de cubos o herramientas ROLAP, donde el usuario tiene la sensación de estar trabajando con un cubo, aunque internamente existe una base de datos normal y corriente… Estos sistemas son bien conocidos, y siguen unos estándares más aceptados que en el caso de las bases de datos multidimensionales, por lo que -en mi opinión- siempre debería ser una opción a evaluar dentro de cualquier proyecto de Business Intelligence.

Desgraciada a afortunadamente, no existe una única solución que valga para todos las compañías y proyectos… Cada caso se tiene que estudiar y decidir, según las necesidades, si realmente vale la pena utilizar cubos OLAP. Me atrevo a lanzar la siguiente recomendación:

  • Un cubo no puede sustituir a un modelo relacional. Detrás de cada cubo, debería existir un único repositorio con la información normalizada… Es decir, primero normalicemos la información que queremos analizar y después, si en necesario, construyamos uno o varios cubos para los usuarios…