El objetivo de esta demo es mostrar como la combinación entre las herramientas Apache Kylin, servidor analítico distribuido sobre Hadoop, y Apache Zeppelin, herramienta para la exploración y visualización de fuentes Big Data, nos permite la creación y publicación de un cuadro de mando que usa como fuente un conjunto de datos de tipo Big Data.
Los datos usados, relativos al rendimiento académico histórico de una gran universidad, tienen un Volumen suficiente para considerarse Big Data (>100 millones de filas en la tabla hechos).
Sobre esta fuente de datos Big Data y mediante el uso de Zeppelin, hemos creado un cuadro de mando con el que el visitante de esta demo puede interactuar más abajo.
Información
En el caso de estudio que presentamos, hacemos uso de las herramientas Apache Kylin y Zeppelin para dar soporte al análisis mediante Cuadros de Mando de un almacén de datos (Data Warehouse, DW) que contiene datos con características Big Data (Volumen, Velocidad y Variedad).
Se trata de un gran Volumen de datos académicos, relativos a los últimos 15 años de una universidad de gran tamaño.
A partir de esta fuente de datos, se ha diseñado un modelo multidimensional para el análisis del rendimiento académico.
En él contamos con unos 100.000 millones de medidas cómo los créditos relativos a asignaturas aprobadas, suspendidas o matriculadas.
Estos hechos se analizan en base a distintas dimensiones o contextos de análisis, como el Sexo, la Calificación o el Año Académico.
Dado que este Volumen de datos es demasiado grande para analizarlo con un rendimiento aceptable con los sistemas OLAP (R-OLAP y M-OLAP) tradicionales, hemos decidido probar la tecnología Apache Kylin, la cual promete tiempos de respuesta de unos pocos segundos para Volúmenes que pueden superar los 10 billones de filas en la tabla de hechos o medidas.
Las tecnologías del entorno Hadoop fundamentales para Kylin son Apache Hive y Apache HBase.
El almacén de datos (Data Warehouse, DW) se crea en forma de modelo estrella y se mantiene en Apache Hive. A partir de este modelo y mediante la definición de un modelo de metadatos del cubo OLAP, Apache Kylin, mediante un proceso offline, crea un cubo multidimensional (MOLAP) en HBase. A partir de este momento, Kylin permite hacer consultas sobre el mismo a través de su interfaz SQL, también accesible a través de conectores J/ODBC.
Por último, para hacer posible la exploración de los datos del cubo de Kylin mediante lenguaje SQL y la creación de cuadros de mando que podamos compartir con los usuarios finales de los datos, hemos hecho uso de Apache Zeppelin. Mediante la configuración del intérprete de Kylin, podemos crear lo que en Zeppelin se conoce como Notebook.
En un Notebook es posible ejecutar uno o más bloques de código de distintas fuentes Big Data, como por ejemplo Apache Kylin, Apache Spark y PostgreSQL, pudiendo visualizar los resultados de forma textual o mediante las tablas y gráficos que incluye. Además estos Notebook pueden ser personalizados en opciones y compartidos vía URL tanto con otros desarrolladores, como con usuarios finales (ej. analistas de datos).
Es precisamente este el caso de la presente demo, donde se permite interactuar con un Notebook de Zeppelin personalizado (no se puede editar el código de las consultas), cuyos gráficos permiten el análisis de los datos del cubo OLAP académico creado con Apache Kylin.
Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.
Información
Desarrollada por eBay y posteriormente liberada como proyecto Apache open source, Kylin es una herramienta de código libre que da soporte al procesamiento analítico en línea (OLAP) de grandes volúmenes de datos con las características del Big Data (Volumen, Velocidad y Variedad).
Sin embargo, hasta la llegada de Kylin, la tecnología OLAP estaba limitada a las bases de datos relacionales o, en el mejor de los casos, con optimizaciones para el almacenamiento multidimensional, tecnologías con importantes limitaciones para enfrentarse al Big Data.
Apache Kylin, construida sobre la base de distintas tecnologías del entorno Hadoop, proporciona una interfaz SQL que permite la realización de consultas para el análisis multidimensional de un conjunto de datos, logrando unos tiempos de consulta muy bajos (segundos) para hechos de estudio que pueden llegar hasta los 10 billones de filas o más.
Las tecnologías del entorno Hadoop fundamentales para Kylin son Apache Hive y Apache HBase. El almacén de datos (Data Warehouse, DW) se crea en forma de modelo estrella y se mantiene en Apache Hive. A partir de este modelo y mediante la definición de un modelo de metadatos del cubo OLAP, Apache Kylin, mediante un proceso offline, crea un cubo multidimensional (MOLAP) en HBase. Se trata de una estructura optimizada para su consulta a través de la interfaz SQL proporcionada por Kylin.
De esta forma cuando Kylin recibe una consulta SQL, debe decidir si puede responderla con el cubo MOLAP en HBase (en milisegundos o segundos), o sí por el contrario, no se ha incluido en el cubo MOLAP, y se ha ejecutar una consulta frente al esquema estrella en Apache Hive (minutos), lo cual es poco frecuente.
Por último, gracias al uso de SQL y la disponibilidad de drivers J/ODBC podemos conectar con herramientas de Business Intelligence como Tableau, Apache Zeppelin o incluso motores de consultas MDX como Pentaho Mondrian, permitiendo el análisis multidimensional en sus formas habituales: vistas o tablas multidimensionales, cuadros de mando o informes.
Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.
Información
Apache Zeppelin es un novedoso servidor para la exploración, creación y publicación de visualizaciones sobre fuentes de datos Big Data (ej. Apache Kylin, Spark, Hive, Cassandra, HBase, Elasticsearch), así como de otras fuentes datos relaciones (ej. PostgreSQL).
Esta herramienta puede ser considerada parte de la pila de herramientas del entorno Hadoop, ya que se integra a la perfección con las mismas.
Para la conexión con las distintas fuentes de datos dispone de distintos intérpretes los cuales deberemos de configurar para el acceso. Una vez configurados el intérprete o intérpretes que necesitemos usar, Zeppelin nos permite la exploración y visualización de las fuentes de datos mediante el concepto de Notebook. Podemos crear distintos Notebook y ellos ejecutar uno o más bloques de código de distintas fuentes, como por ejemplo Apache Kylin, Apache Spark y PostgreSQL, pudiendo visualizar los resultados de forma textual o mediante las tablas y gráficos que incluye.
Además estos Notebook pueden ser personalizados en opciones y compartidos vía URL con otros usuarios como desarrolladores de las bases de datos, algoritmos, visualizaciones o usuarios finales como los analistas. Es precisamente este el caso de la presente demo, donde se permite interactuar con un Notebook de Zeppelin personalizado (no se puede editar el código de las consultas SQL), cuyos gráficos permiten el análisis de los datos del cubo OLAP académico creado con Apache Kylin.
No menos importante es la posibilidad de exportar la tabla o gráfico generado por un bloque de código, mediante tecnologías de IFrames para incluir en nuestros cuadros de mando o ejecutarlos y obtener los resultados mediante la API REST de Zeppelin. De esta forma podemos crear cuadros de mando y otras aplicaciones personalizadas que usen como fuente las tecnologías de Big Data de forma transparente, sencilla, y también segura, soportando la integración con un servidor LDAP.
Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.
Información
Como fuente datos Big Data de esta demo, disponemos de un
gran Volumen de datos académicos ficticios, relativos a los últimos 15 años de una universidad de gran tamaño y por la que han pasado más de un millón de alumnos en este tiempo. A partir de esta fuente de datos, se ha diseñado un modelo multidimensional para el análisis del rendimiento académico
.
En él contamos con unos 100.000 millones de medidas cómo la suma de los créditos relativos a asignaturas aprobadas, suspendidas o matriculadas.
Además también nos encontramos con otras medidas derivadas de las anteriores y, por tanto, más complejas como son la Tasa de rendimiento y Tasa de éxito, calculadas a partir de la relación entre Créditos Superados y Créditos Matriculados y de la relación entre Créditos Superados y Créditos Presentados.
No menos importantes son las dimensiones o contextos de análisis en base a los que se analizan las medidas anteriores. Como dimensiones de un solo nivel tenemos el Sexo, la Calificación, el Rango de Edad y la siempre presente componente temporal, el Año Académico. Además, hemos incorporado dos dimensiones complejas, con jerarquías de dos niveles y una mayor cardinalidad, siendo frecuente encontrarnos con dimensiones de esta naturaleza.
Con la dimensión Estudio, podemos analizar los datos agrupados al nivel de Tipo de Estudio (Grado, Máster, Doctorado,...) o profundizar (operación Drill Down sobre la vista OLAP) hasta los distintos Planes de Estudio, esto es, las distintas titulaciones, como "315-Grado en Biología".
Para información relacionada, puede consultar la siguiente entrada en el blog de TodoBI.