Mostrando entradas con la etiqueta data warehouse. Mostrar todas las entradas
Mostrando entradas con la etiqueta data warehouse. Mostrar todas las entradas

viernes, 5 de febrero de 2016

Conceptos básicos de Data Warehouse - Parte II. Funciones y operaciones sobre un cubo de datos


Continuando la serie que empezamos el otro día en un post anterior, seguimos con la temática acerca de Data Warehouse y Big Data.

Si ya vimos qué era un cubo de datos como un ente n-dimensional, vamos a ver ahora algunas de las operaciones frecuentes y posibilidades que nos ofrece el trabajar con estas estructuras de datos. Muchas de ellas son propias de estos modelos y otras se comparten o tienen su equivalente en la estructura tradicional de tablas en sistemas de bases de datos. Estas operaciones y funciones nos pueden ayudar a tener una idea más clara de las ventajas y posibilidades que ofrece trabajar con cubos de datos frente a tablas convencionales.

Operaciones 


De entre las operaciones que podemos realizar destacamos las siguientes:

  • Pivot: nos permite permutar filas por columnas, resultando muy útil en algunos casos para acercar la representación de los datos que estamos visualizando a un concepto entendible e intuitivo de analizar. 
  •  Slice: se trata de hacer un sesgo o subconjunto de entre una las dimensiones que forman el cubo. Se realiza sustituyendo alguna de las dimensiones por un valor fijo o estableciendo una restricción. Por ejemplo, podríamos restringir la dimensión "Localización" a uno de sus miembros en concreto.
  •  Dice: es muy parecida a la operación Slice, pero se realiza sobre dos o más dimensiones del cubo.
  •  Navigation: se trata de navegar entre distintos niveles de abstracción del cubo según interese a la operación de análisis que estamos realizando. Distinguimos:
    • Drill-down: cuando estamos añadiendo nivel de detalle a una dimensión. Por ejemplo, pasamos de estudiar en la dimensión "Localización" "países" a estudiar "ciudades".
    • Roll-up: la operación contraria, abstraeremos grupos de datos para estudiarlos en conjunto. En este caso, debemos además definir la regla según la cual realizamos la agrupación. Por ejemplo, pasaríamos de estudiar en la dimensión "Localización" "ciudades" a estudiar "países" estableciendo además qué ciudades pertenecen a cada país.

Funciones de agregación 

Además de las operaciones que hemos destacado en el punto anterior, existen funciones de agregación que agrupan medidas de las dimensiones contenidas en un mismo grupo de medida.

Determinamos la aditividad de una función de agregación como el grado en el que la medida es agregable a través de las distintas dimensiones del cubo.

Así, podemos distinguir tres categorías diferentes:
  • Aditiva: también llamada medida completamente aditiva, se trata de una medida que puede ser agregada a través de todas las dimensiones incluidas en el grupo de medida que la contiene, sin restricciones.
  • Semi-aditiva: una medida será semi-aditiva cuando pueda ser agregada a través de alguna, pero no todas, las dimensiones que están incluidas en el grupo de medida que la contiene. Por ejemplo, si nos encontráramos con un sistema que soporte una red de comercios, la cantidad de producto disponible en stock es una medida semi-aditiva, ya que puede ser agregada a través de la dimensión geográfica (por ejemplo la suma de stock de toda una región), pero no tendría sentido agregarla en la dimensión tiempo, ya que es una medida de una situación puntual en el tiempo.
  • No aditiva: llamaremos medida no aditiva a aquella que no puede ser agregada a través de ninguna dimensión a través de su grupo de medida. Estas medidas deben ser calculadas individualmente para cada celda en el cubo que la representa. Por ejemplo, una medida calculada que devuelva una relación porcentual, como un ratio de beneficios.
Y con este recopilatorio de funciones y operaciones terminamos el post, es importante pensar las posibilidades que nos ofrecen e intentar deducir en qué casos nos solucionan problemas cuyo estudio con métodos tradicionales resultaría imposible o mucho más laborioso.

En siguientes post de esta serie, veremos el lenguaje Microsoft MDX como base para gran número de aplicaciones, más detalles sobre el mundo del Data Warehouse y empezaremos a estudiar algunos principios de diseño e implementación de una arquitectura basada en cubos de datos.

martes, 2 de febrero de 2016

Conceptos básicos de Data Warehouse - Parte I. ¿Qué es un cubo de datos?



En anteriores entradas, vimos cómo podemos instalar la suite Pentaho Business Analytics junto al plugin Pivot4J para visualizar y extraer información de tablas dinámicas.

Hoy, vamos a ver algunos conceptos básicos acerca del mundo del Big Data, el Data Warehousing y el análisis de información a nivel empresarial.

El Data Warehouse surge como una solución a un problema que se empezó a originar allá por los años 80 al entrar en conflicto las bases de datos relacionales para producción y las necesidades de extracción de grandes cantidades de información para el análisis de la misma.

Así, sin entrar en mayor detalle de momento, podemos ver que las técnicas de Data Warehouse tienen como objetivo especializar las bases de datos en la extracción y análisis de información para toma de decisiones a nivel estratégico. Pasamos del modelo clásico de dos dimensiones organizadas en tablas relacionadas entre sí a un modelo n-dimensional. Un primer paso inmediato sería la introducción de la dimensión tiempo en cualquiera de los antiguos sistemas bi-dimensionales, obteniendo con ello un cubo de datos.

Veamos un ejemplo:


Como podemos observar, encontramos un par de dimensiones principales que podrían ser las mismas que encontraríamos en una tabla relacional tradicional (ya veremos más adelante que sin embargo la dimensión Measures -o medidas en español- tiene sus particularidades), ampliadas con una tercera dimensión que es el tiempo.

No obstante, recordemos que hemos definido un cubo de datos como una entidad n-dimensional. Esto quiere decir que puede (y suele) tener más de tres dimensiones, lo cual dificulta mucho su representación y es uno de los principales motivos que nos llevan a usar tablas dinámicas (pivot table en inglés). Precisamente esa, es la utilidad de la aplicación Pivot4J que vimos anteriormente, que haciendo uso de su interfaz gráfica y consultas en lenguaje MDX nos permite extraer las dimensiones (y agregaciones sobre estas) que nos interese estudiar.

Definamos ahora unos cuantos conceptos básicos acerca de los cubos de datos:

  • Dimensión: es cada uno de los parámetros que etiquetan las filas o columnas del cubo. Como hemos comentado, a diferencia de una tabla convencional, puede tener más una por eje.
  •  Miembro: es el valor que toma una determinada dimensión.
  • Medida: es una determinada variable cuantitativa almacenada en una celda (como podemos observar en la imagen de ejemplo más arriba en el eje de las X). 
Un  aspecto muy importante es que las distintas dimensiones pueden estar relacionadas entre sí de forma jerárquica, de manera que una dimensión puede contener otras dimensiones más concretas y otros sub-miembros. En el ejemplo anterior, la dimensión Product (Producto) contiene la categoría Bikes (Bicicletas) que a su vez podría estar formada por bicicletas de montaña, bicicletas de carretera, plegables, eléctricas, etc.

Así, podríamos afinar con estas relaciones jerárquicas el nivel de detalle de los datos que estamos analizando, lo que nos lleva a otro concepto importante: la dispersión (o sparsity en inglés). De esta manera, definiremos la dispersión en función del número de celdas vacías en el cubo de datos.

Como podemos intuir, según subimos el nivel de detalle (adentrándonos en las dimensiones más abajo en el nivel de jerarquía) sube también el nivel de dispersión porque empezamos a encontrar celdas sin valores. Por ejemplo, puede que no tengamos datos de unidades vendidas de bicicletas eléctricas en febrero de 2015 y sin embargo el total de bicicletas de todos los tipos (un nivel menos de detalle) en esa fecha sí que devuelva algún resultado.

Y con este importante concepto, concluimos este primer artículo sobre Data Warehouse y Big Data que seguiremos ampliando con más conceptos y técnicas de análisis en futuras publicaciones. En ellas, abordaremos cuestiones fundamentales como son las agregaciones y operaciones sobre cubos, que en el fondo fueron la razón por las que surgió este tipo de estructuras ante la dificultad de obtener resultados de manera analítica sobre bases de datos tradicionales.


sábado, 30 de enero de 2016

Cómo instalar Pentaho Business Analytics con el plugin Pivot4J para Big Data

 

En esta entrada, vamos a describir el primer paso si queremos montar un servidor para análisis de datos y explotación de Data Warehouse utilizando las herramientas de código abierto que pone a nuestra disposición la versión Community de la suite Pentaho.

Dicha plataforma provee muchas herramientas para el análisis y minería de datos, pero nos vamos a centrar en la descarga e instalación del servidor Bussiness Analytics junto con el plugin Pivot4J que nos permitirá realizar vistas y manipulaciones de los cubos de datos que podamos tener en nuestro Data Warehouse.

De manera conveniente, la plataforma incluye unos datos de ejemplo por si lo que nos interesa es descubrir sus posibilidades o incluso empezar a aprender a  manipular y analizar información procedente de un cubo de datos. En futuras entradas, ampliaremos información sobre qué es un cubo de datos, así como otros conceptos básicos acerca de Big Data y Data Warehouse.

A modo de resumen, describiremos en esta entrada la instalación del servidor y para ello usaremos el siguiente software y versiones:
  1. Java Runtime Environment 7
  2. Pentaho Business Analytics 5.3
  3. PivotJ4 0.9
 

 1. Instalando Java Runtime Environment 


Necesitamos tener instalado el JRE de Java en su versión 7 para hacer uso de la plataforma de Pentaho, que está basada en Java. Actualmente, está disponible una nueva versión de Java (la 1.8), pero para el funcionamiento de Pivot4J 0.9 necesitaremos de la versión anterior. Existe un plugin de Pivot4J en versión de desarrollo compatible con Java 8, pero su funcionamiento aún no es muy estable.  

Si ya tenemos instalado JRE7, no hace falta volverlo a instalar y si el que tenemos instalado es JR8 no habría ningún problema por instalar ambas versiones y que convivan en nuestro sistema.

Podemos descargar JRE7 desde la siguiente web: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jre-7u80-oth-JPR.


Deberemos seleccionar la versión según nuestro sistema operativo y proceder a la instalación como con cualquier otro software. Es recomendable instalar JRE con los valores por defecto en lo tocante a rutas, ya que facilitará mucho que los programas lo encuentren cuando tengan que hacer uso del mismo o cuando comprueben si está instalado.

2. Descargando e instalando Pentaho Business Analytics y el plugin Pivot4J


A continuación, debemos descargar la suite de Pentaho Community Edition (Pentaho CE) desde el siguiente enlace:
http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/5.3/.

Si accedemos a la web oficial de Pentaho CE, nos ofrecerá la versión 6 pero si descargamos ésta no será compatible con la versión estable (0.9) de Pivot4J.


Una vez descargado, bastará con extraer el archivo en la carpeta en la que deseemos instalar el servidor (por ejemplo C:/Archivos de Programa/Pentaho/biserver-ce).

No se necesita ejecutar ningún instalador, ya tenemos listo el servidor de Business Analytics.

A continuación, descargamos el plugin de Pivot4J desde el siguiente enlace: http://www.pivot4j.org/download.html. Descargaremos la versión preparada para la suite de Pentaho.

Una vez descargado, procederemos a descomprimir la carpeta pivot4j dentro de la carpeta de instalación donde hayamos ubicado el servidor en la siguiente ruta //biserver-ce/pentaho-solutions/system.

Con esto, ya tenemos todo instalado. Sólo nos falta un pequeño paso de configuración para estar listos para usar la plataforma con su plugin.

3. Añadiendo la Variable de Entorno para Pentaho


Para que las aplicaciones de Pentaho funcionen correctamente, es muy aconsejable añadir una nueva variable de entorno para configurar la ruta hacia el directorio donde está instalado el JRE de Java.

Para ello, en Windows 10, hacemos click derecho sobre Este equipo dentro de un Explorador de Windows, hacemos click sobre Propiedades y a continuación en Configuración avanzada del sistema.


Haremos click en el botón Variables de entorno... ubicado en la parte inferior derecha y a continuación pulsaremos en el botón Nueva... en la parte de Variables del sistema.


Introduciremos PENTAHO_JAVA_HOME como nombre y en el valor de la variable la ruta donde hemos instalado JavaRE. Si la ruta la hemos dejado por defecto, nos quedará algo así:


Pulsamos en Aceptar y con este último paso ya tendríamos instalado y configurado todo lo necesario para empezar a trabajar con nuestro servidor.

4. Arrancando el servidor y comprobando el funcionamiento de Pivot4J


Ya sólo queda arrancar nuestro servidor Pentaho Business Analytics y comprobar que el funcionamiento de Pivot4J es el esperado.

Para ello, acudiremos a la carpeta donde hayamos instalado biserver-ce y haremos click derecho/Ejecutar como administrador sobre el archivo start_pentaho.bat. Esto abrirá una ventana de consola que arrancará el servidor Tomcat que soporta nuestra plataforma y empezará a desplegar la aplicación.


Tras unos instantes, nuestro servidor quedará arrancado, desplegado y accesible. Para acceder a él desde nuestro equipo, abriremos el navegador y accederemos a localhost a través del puerto 8080: http://localhost:8080/.

Nos debería aparecer la pantalla de login del servidor BI. Haremos click en Login as an Evaluator y a continuación en el botón GO bajo la opción de Administrator.


A continuación accederemos al panel de control de nuestro servidor de análisis. Sólo queda comprobar que Pivot4J está correctamente instalado. Haremos click en Create New y comprobamos si aparece la opción Pivot4J View:



En caso afirmativo, ya tendremos todo listo para empezar a explotar y analizar los cubos de datos. Si la opción no aparece, lo más probable es que hayamos instalado versiones incompatibles de Pentaho Business Analytics y Pivot4J (por ejemplo PBA 5.3 + PivotJ4 1.0 o PBA 6.0 + PivotJ 0.9).

Ya sólo queda crear una conexión con nuestra base de datos (desde la opción Manage Data Sources del panel de control) o empezar a trabajar con los datos de ejemplo que se incluyen (SampleData y SteelWheels).

En futuras entradas, veremos más sobre esta herramienta, así como mucha más información referente a Big Data y DataWarehouse.