Introducción al Big Data sin perderse en un mar de datos

Cuando me pidieron que escribiese un artículo sobre Big Data para el Blog de GMV, me surgieron una multitud de inquietudes ya que actualmente es un término de moda muy maltratado (y mal tratado) por la industria de la Tecnología de la Información, por el desconocimiento real de las tecnologías que hay detrás de este concepto. Después de darle bastantes vueltas voy a intentar hacer una aproximación que espero que le sea didáctica al lector. Para ello voy a hacer un breve recorrido histórico del problema clásico de cómo organizar la información para un consumo eficiente de la misma. Fue uno de los primeros problemas que se resolvieron con tecnología que podemos denominar Big Data, para luego pasar a revisar las características que debe tener una arquitectura para denominarla Big Data y finalizar con casos de usos más relevantes.

Ya en la antigüedad…

El problema de recopilar información relevante de forma eficaz ya se remonta a la época de Tolomeo II (hijo de Tolomeo I) quien funda la biblioteca de Alejandría allá por el siglo III a. C.. Tolomeo II tenía como objetivo recopilar todo el conocimiento de la época (obras de teatro, poemas épicos, tratados de filosofía, medicina, matemáticas, retórica y cualquier rama del saber de la época) para construir la mayor y mejor biblioteca del mundo, pero llegó un momento que se vio desbordado por la enorme cantidad de rollos de papiro que tenía la biblioteca (se estima que llegó a albergar 900.000 manuscritos). Entonces Tolomeo II contactó con Zenodoto que, después de visitar la biblioteca, comprendió que ordenar todo aquello era clave, pues la biblioteca no valía nada por el mero hecho de acumular centenares de rollos si nadie era capaz de encontrar uno cuando necesitara consultarlo. Después de noches de insomnio pensando cómo clasificar aquellas montañas de cestos de manuscritos, recordó el glosario de palabras antiguas de Homero que él había ordenado por grupos: los que empezaban por A todos juntos, luego los que empezaban por B y así sucesivamente. Al principio le pareció demasiado simple, pero pronto se dio cuenta de que aquello funcionaba muy bien para localizar una palabra sobre la que hubiera trabajado. Así decidió ordenar todos los rollos por orden alfabético según su autor. La tarea llevó meses, años, pero Zenodoto tuvo tiempo de ver en vida aquella inmensa biblioteca con todos los centenares de miles de rollos archivados y localizables.

Y llegó la explosión de información con Internet

Tuvieron que pasar unos veintitrés siglos para encontrarnos de nuevo con el problema de recuperar información relevante de forma eficaz. Nos encontramos en plena burbuja de Internet donde el número de páginas Web crece exponencialmente, al igual que los usuarios inexpertos que empiezan a acceder a Internet. Estos nuevos usuarios para poder encontrar información relevante podrían consultar páginas de índices como Yahoo (mantenidas de forma manual) y motores de búsquedas basados en palabras clave como AltaVista. En muchas ocasiones los resultados de las búsquedas realizadas por los usuarios no resultaban relevantes y además los sistemas de búsquedas empezaban a tener problemas de rendimiento.

En 1996 Sergey Brin y Lawrence Page comienzan a colaborar en la creación de un motor de búsqueda llamado BackRub en la Universidad de Stanford y escriben el artículo “The Anatomy of a Large-Scale Hypertextual Web Search Engine” donde presentan un prototipo de un motor de búsqueda a gran escala, llamado Google, que hace un uso intensivo de la estructura presente en hipertextos (documentos que hacen referencias a otros documentos mediante híper-enlaces). En dicho artículo los creadores de Google muestran su preocupación por la escalabilidad del motor de búsqueda y las limitaciones que tienen las arquitecturas centralizadas de índices para dar unos tiempos de respuesta aceptables para el usuario. Como respuesta a este problema de escalabilidad y rendimiento, los investigadores de Google desarrollan el sistema de ficheros distribuido Google File System (2003) y el framework de procesamiento de datos distribuido MapReduce (2004), que permiten el análisis de enormes volúmenes de conjuntos de datos. Entramos en la Era del Big Data.

Nacimiento de Apache Hadoop

Posteriormente, en 2005, Yahoo crea un proyecto open source llamado Apache Hadoop, originariamente desarrollado para soportar el motor de búsqueda Nutch pero que luego se convirtió en un estándar de facto para lo que denominamos actualmente arquitecturas Big Data.

A partir de aquí todos los grandes fabricantes de software (IBM, Oracle, Microsoft, etc.) se han sumado a esta tendencia tecnológica incorporando a sus productos diversos componentes de Apache Hadoop para poder vender sus productos como Big Data. Además han aparecido un conjunto de fabricantes especializados en Apache Hadoop que han creado sus propias distribuciones (conjunto de componentes testados e integrados entre si, así como herramientas de administración  y mantenimiento) que ofrecen servicios tanto de consultoría para la implantación como soporte y mantenimiento. Cabe destacar las distribuciones de Apache Hadoop de Cloudera, MapR Technologies y Hortonworks, que contribuyen en la evolución de Apache Hadoop.

Por otro lado en muchas ocasiones se identifica Big Data con Apache Hadoop, pero existen otras arquitecturas consideradas Big Data como por ejemplo MongoDB, Google BigQuery y Amazon DynamoDB entre otros, que tienen una aproximación distinta a Apache Hadoop, aunque empiezan a tener funcionalidades cada vez más parecidas.

¿Qué caracteriza a un sistema Big Data?

Creo que es importante para el lector tener un punto de vista crítico sobre aquellas características que definen un sistema Big Data, ya que actualmente los fabricantes de software insisten que todos ellos tienen productos Big Data, cuando muchas veces la realidad dista bastante de lo que ofrecen sus productos.

Desde mi punto de vista un sistema Big Data (que puede ser Apache Hadoop o no) tiene que disponer de las siguientes características:

  • Escalabilidad lineal, es decir, que permita aumentar la capacidad de procesamiento linealmente añadiendo nuevo hardware de forma ilimitada.
  • Tolerancia a fallos de tal forma que si uno o varios nodos se averían, el sistema siga funcionando sin pérdida de disponibilidad ni pérdida de ningún dato.
  • Despliegue sobre hardware económico de propósito general (inexpensive commodity hardware) que permita la creación de granjas de servidores con un número elevado de nodos con unos costes sostenidos. También tienen que permitir el despliegue en Cloud (cada vez más habitual sobre todo en startups).
  • Procesamiento distribuido y localidad de los datos, entendido como la ejecución de los procesos analíticos se realizan lo más cercanos de donde se encuentra el dato almacenado, evitando tanto el trasiego de la información como el cuello de botella que puede suponer un almacenamiento centralizado.

Principales casos de usos Big Data

Para una mejor comprensión de lo que se considera Big Data creo que puede ser de ayuda al lector enumerar los principales casos de uso de la tecnología Big Data y que, a día de hoy, otras tecnologías más tradicionales no tienen capacidad de proceso para afrontar dicho caso de uso:

  • Web Search Engine (como Google, Baidu, o Bing) que son capaces de ubicar los documentos más populares y relevantes que se encuentra en Internet y que incluyen una o varias palabras por las que se realiza la búsqueda, para después ordenarlos de acuerdo a una serie de criterios (como por ejemplo el número de referencias a dicho documento desde otros documentos).
  • Recommendation Systems que a partir de las preferencias personales de un usuario (deducidas a partir de las compras que ha realizado o de aquellos ítems que ha visitado en un portal de eCommerce) o de las preferencias de usuarios “similares” (calculado como los usuarios que les gustan cosas similares), proponen nuevos productos que un usuario quisiera comprar. Un ejemplo lo podéis encontrar en el portal de eCommerce por excelencia como es Amazon.
  • Clickstream Analysis que utiliza los datos que producen los usuarios cuando navegan por Internet con el fin de segmentar a los usuarios y entender sus preferencias. Las agencias de medios digitales también pueden analizar los flujos de clicks e impresiones de publicidad para ofrecer anuncios más eficaces.
  • Log Processing que analiza un número masivo de registros generados por aplicaciones web y móviles, de tal forma que ayuda a las empresas a convertir petabytes de datos desestructurados o semi-estructurados en información útil acerca de sus aplicaciones o usuarios.

Si el lector busca un poco por Internet encontrará que todas las empresas tecnológicas dicen que hacen proyectos Big Data y muchos más casos de éxito se intentan catalogar como Big Data, al ser a día de hoy un término que está muy de moda en nuestra industria. Incluso tienes la sensación que Big Data es la “Silver bullet” que resuelve todos los problemas de tratamiento de la información, y sin embargo hay que estudiar caso por caso si este tipo de arquitecturas ayudan a resolver el problema que tienes en frente. Este hecho está produciendo un desconcierto en aquellos profesionales y empresas que quieren saber si las tecnologías Big Data les pueden ser útiles para sus negocios. Ya se están dando los primeros fracasos en proyectos Big Data debido a que no se tenía un objetivo claro ni el valor real que ofrecía.

Conclusiones

No quisiera finalizar esta entrada del blog sin extraer una serie de conclusiones que resuman lo expuesto anteriormente:

  • La tecnología Big Data no resuelve todos los problemas de escalabilidad ni sirve para todo tipo de proyecto en el cual hay gran volumen de datos. Hay que estudiar caso a caso.
  • Hay que ser crítico a la hora de elegir una solución Big Data ya que no todos los fabricantes cumplen con los requisitos que se le exige a una arquitectura Big Data. Podemos considerar a Apache Hadoop como arquitectura Big Data de referencia, aunque hay otras aproximaciones.
  • Tiene que haber una necesidad de negocio que justifique un proyecto Big Data que aporte valor a negocio y con unos objetivos claros.

Espero que os haya sido de interés el artículo y si quieres conocer más sobre este mundo Big Data estoy a tu disposición en jcbaquero@gmv.com o @jbaquerot

Referencias

  1. Posteguillo Gómez, Santiago (2012). La noche en que Frankenstein leyó el Quijote.
  2. Sergey Brin and Lawrence Page (1996). The Anatomy of a Large-Scale Hypertextual Web Search Engine.
  3. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung (2003). The Google File System.
  4. Jeffrey Dean and Sanjay Ghemawat (2004). MapReduce: Simplified Data Processing on Large Clusters.
  5. Wikipedia. Apache Hadoop
  6. Michael Cox and David Ellsworth Report NAS-97-010, July 1997. Application-Controlled Demand Paging for Out-of-Core Visualization
  7. Jeremy Ginsberg, Matthew H. Mohebbi, Rajan S. Patel, Lynnette Brammer, Mark S. Smolinski & Larry Brilliant (2009). Detecting influenza epidemics using search engine query data.

Otras lecturas interesantes

  1. Michael Cox and David Ellsworth Report NAS-97-010, July 1997. Application-Controlled Demand Paging for Out-of-Core Visualization
  2. Jeremy Ginsberg, Matthew H. Mohebbi, Rajan S. Patel, Lynnette Brammer, Mark S. Smolinski & Larry Brilliant (2009). Detecting influenza epidemics using search engine query data.

Autor: José Carlos Baquero
Jefe de División Desarrollo de Software Tecnología y Servicios – Secure e-Solutions

Visita nuestra web para más información

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de GMV
The author’s views are entirely his own and may not reflect the views of GMV
Share

    2 opiniones en “Introducción al Big Data sin perderse en un mar de datos

    1. #Jerby (@Blograme)

      Por lo que parece, se trata de bucear en toda la información disponible para poder ofrecer productos que se puedan vender fácilmente.

      La venta tradicional era otra cosa.

      1. José Carlos Baquero

        Es un tema muy discutido en la industria pero, desde mi punto de vista, una organización debe de tener un problema de negocio a resolver (que justifique la inversión) y luego encontrar los datos (internos o externos) necesarios para resolver dicho problema. Lo que nadie duda es que se han ampliado el conjunto de problemas que se pueden resolver actualmente gracias a las arquitecturas Big Data ya que permiten procesar un mayor volumen de datos con unos costes contenidos.

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

      I accept the privacy policy Acepto la Política de Privacidad

    Basic Data-Protection information:

    Data-protection supervisor: GMV Innovating Solutions SL
    Purpose: Answer questions, respond to user complaints and recommendations, receive job applicants resumes and career information.
    Legitimation: Consent of data subject
    Addresses: Grupo GMV companies
    Rights: Access, rectify and cancel data plus other rights, as explained in additional information
    Additional information: You can check out the additional and detailed data-protection information on our website:Privacy Policy

    Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    WP-SpamFree by Pole Position Marketing

    15.322 Total Views