Hadoop en proyectos de Business Intelligence

En los últimos meses el término “Hadoop” ha cobrado mucha fuerza en la escena de Business Intelligence. De repente todo el mundo habla de Hadoop y Big-Data, nuevos productos aparecen, viejos productos vuelven a estar de moda y en general la sensación es que es la pera. Sin embargo poca gente sabe realmente lo que es y lo que implica usarlo.

Tiempo de lectura: 5 minutos

¿Qué diantres es Hadoop? Esa es la pregunta que llevaba haciéndome desde hace un tiempo. Con la intención de despejar mis dudas no dudé en apuntarme a un webinar ofrecido por TDWI cuyo objetivo era precisamente aclarar qué es Hadoop y cuál es su aplicación en proyectos de BI y DW. El webinar en sí fue muy interesante, os presento a continuación algunos de los puntos que se cubrieron y mis conclusiones personales al final.

El logo no me acaba de convencer...

 

  • Hadoop son muchos productos. No uno sólo.
  • Hadoop como tal no existe… No puedes “descargar Hadoop”. Hadoop es un ecosistema de productos bajo el paraguas de la Apache Software Foundation.  De esta forma hay dos productos principales que conforman el nucleo de cualquier aplicación Hadoop. Estos son el HDFS y MapReduce. Pero además de estos productos básicos, existen multitud de productos o iniciativas opensource que modifican o complementan el nucleo de Hadoop. Los más utilizados en los proyectos de BI y BigData posiblemente serán Hive, HBase y Pig.

    Por lo tanto, cuando hablamos de Hadoop debemos dejar claro a que subconjunto de productos nos estamos refiriendo.

  • Hadoop se basa en un sistema de archivos. No es una base de datos.
  • Sorpresa en tu mesa. ¿Hadoop es un sistema de archivos? Bueno, seamos formales. Uno de los productos core de hadoop, HDFS, es un sistema de archivos. Y generalmente es la primera piedra de un proyecto Hadoop. HDFS es altamente distribuido y tolerante a fallos, y está especialmente pensado para correr clusters de pc’s de escritorio, ya que es super escalable.

    Pero claro, un sistema de archivos no es eficiente a la hora de recuperar información (no al menos al nivel de un RDBMS), es lento y proporciona pocas herramientas de búsqueda. Aquí es donde entran en juego otros de los productos Hadoop, como HBase (creado a partir de google’s BigTable), que nos ofrece una capa de acceso a la información en el HDFS mucho más eficiente. Si os dais cuenta ya se van dibujando las sinergias entre los componentes Hadoop.

  • MapReduce prepara los datos para ser analizados, pero no los analiza.
  • MapReduce corre encima del HDFS. Es un motor que diseñaron en Google antes de que existiera HDFS, por lo tanto puedes ejecutar MapReduce sobre otros sistemas de almacenamiento.  En realidad es como un framework de desarrollo de software que te permite escribir aplicaciones de acceso a datos con acceso en paralelo, tolerante a fallos y totalmente distribuido. Su funcionamiento se basa en trocear la información del HDFS (la parte “map”), dejar que cada nodo procese su parte , extraer y ordenar la información interesante de cada trozo y luego juntarlo todo en algo un poco más estructurado (la parte “reduce”).

    Cuidado porque MapReduce, tal cual, requiere que escribamos un montón de código (y no vale SQL), lo veremos en detalle en el siguiente punto.

  • Hadoop no entiende estándar SQL, pero todo se andará…
  • Decíamos que MapReduce no entiende SQL. ¿Cómo hablamos con él entonces? Hay muchas formas,  podemos escribir nuestras “consultas” en Java, C, C++, Python, Hive, R… Pero no en SQL, que es precisamente el lenguaje que más nos gusta a los frikis del BI. Lo más cercano que tenemos es Hive, que utiliza un lenguaje llamado QL que dicen que se parece bastante a SQL. Pero para el que no quiera liarse a aprender QL la mayoría de los vendedores de BI están preparando interfaces que trasladarán SQL al QL de Hive, que podrá ser ejecutado por MapReduce sobre HDFS… Vaya… parece que las piezas van encajando… :)

    Mi visión personal de como encajaría Hadoop en un proyecto BI

     

  • Hadoop se luce con datos no estructrados.
  • HDFS, al ser un sistema de archivos, básicamente se traga todo lo que le eches. Para cargar datos al HDFS necesitas utilizar un cargador, una API que puede coger desde ficheros de texto plano hasta JMS queues. Los datos no tienen que tener un orden o jerarquía, no tenemos que decirle a HDFS quién es quién o qué es qué. De eso ya se encargará MapReduce.

    ¿Y a qué tipo de datos nos referimos con datos no estructurados? Pues hay de diversos tipos. Información de sensores, registros de webs, texto a tutiplén, feeds de socialmedia… En general datos que se amontonan un poco sin orden ni concierto y que muchas veces dejamos fuera del DWH por que incorporarlos no es algo ni práctico (porque no es fácil entender los datos) ni posible (debido al enorme espacio que ocupan…)

Mis conclusiones

En mi primera aproximación a Hadoop he descubierto que tiene un enorme potencial, pero sus usos ahora mismo son concretos y creo que es un error pensar que esta arquitectura puede reemplazar un sistema tradicional de BI. Pensad que hasta la consulta más sencilla que lancemos desde Hive hacia al HDFS puede tardar (como mínimo!) varios minutos. Vale, podemos poner HBase en medio y la cosa mejorará… pero vaya follón ¿no?

Sin embargo, y si bien es cierto que es complejo y que ahora mismo igual es un poco arriesgado lanzarse a la piscina, está claro que algunos vendedores de BI como Oracle están apostando duro por esta tecnología. Con herramientas como el Hadoop loader para ODI, la adquisición de Endeca y su sistema Big Data Appliance Oracle ha demostrado que van en serio con este tema. Veremos si no se equivocan…

¿Y tú? ¿Qué opinas de Hadoop? ¿Te convence? Venga, anímate y deja un comentario!

Si os ha interesado el tema os dejo con algunos enlaces:

3 comments to Hadoop en proyectos de Business Intelligence

  • HadoopCurioso

    Hola Antonio,

    Tras varios días leyendo documentación, solo había logrado hacerme una idea de cómo encajarían todas las piezas y lo que puede durar el proceso de que estas piezas dejen de ser un conjunto de programas mal integrados y pasen a ser un verdadero paquete fiable para dejar caer en un cliente.

    Me alegra ver que la idea que me había montado en la cabeza coincide con tu descripción, que por cierto, me parece un resumen excelente: Muy claro y a pesar de breve (me he quedado con ganas de más), aporta muchísima información.

    Personalmente creo que una vez existan las herramientas con sus marcas asociadas, será una solución que se dejará para analizar únicamente grandes volúmenes de datos y que por tanto las empresas corrientes no llegarán a ver. Más o menos como pasa ahora con las bases de datos multidimensionales…

  • HadoopCurioso

    Añadir que le veo más futuro para procesamiento intensivo de datos o para acortar procesos pesados y críticos para las empresas que para analizar informes y Cuadros de Mando…

  • Hola HadoopCurioso,

    Coincido totalmente con tu punto de vista. He seguido leyendo cosas sobre el tema y veo que los proveedores acabarán sacando sus soluciones integradas para que se puedan vender como un servicio más. Al hacerlo así, se reducirá mucho la complejidad de la implementación que actualmente presentan los productos por separado.

    En esta linea, estoy siguiendo con interés los movimientos de Oracle, que compró la plataforma de unstructured data, Endeca, para integrarla entre Hadoop y sus sistemas de análisis de información tradicionales como OBIEE.

    Veremos a ver como avanza el futuro :)

    Muchas gracias por tu comentario!

Deja un comentario

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>