Your address will show here +12 34 56 78

Hadoop o NoSQL. ¿Cómo elegir la mejor opción?

Analytics

question-mark-1872634_1920

Si el término Big Data lo escuchas con bastante asiduidad en tu organización, es probable que también hayas oído hablar de Hadoop y NoSQL. Estos dos vocablos son tecnologías que están íntimamente relacionadas con el Big Data, ambas tienen que ver con el almacenamiento y procesamiento de grandes cantidades de datos, pero, ¿en qué se diferencia una de la otra? ¿Cuál es la que mejor se adapta a las necesidades de mi negocio? Son preguntas muy habituales que toda organización se hace cuando quiere afrontar un proyecto de Big Data. Por ello, es imprescindible alinear el conocimiento de tu negocio con las características de estas tecnologías para finalmente optar por la que más se adapte a tus necesidades.

Por la similitud de sus características, Hadoop y NoSQL podrían ser considerados competidores directos. En realidad no es así. Aunque ambas son brillantes tecnologías para Big Data, son utilizadas para tipos de trabajo distintos. NoSQL, por un lado, tiene que ver con el Tiempo-Real y el acceso interactivo a los datos. Sus casos de uso requieren la interactividad del usuario final con el dato, como por ejemplo sucede en una aplicación Web. En general, NoSQL es perfecto para aquellos casos en los que se precise de una lectura y escritura de datos muy rápida.

Hadoop, por el contrario, es muy eficaz en el análisis y procesamiento batch de grandes volúmenes de datos. Para lograrlo, Hadoop distribuye la carga de trabajo entre los servidores de los que se compone el cluster, haciendo uso de su sistema de ficheros distribuido (HDFS) y del algoritmo MapReduce.

Hadoop vs NoSQL

La imagen mostrada anteriormente refleja las características principales de Hadoop y NoSQL, así como los ejemplos prácticos más típicos. A continuación se enumeran algunos casos de uso específicos de estas dos tecnologías:

NoSQL

  • Manejo de grandes streams de datos, no transaccionales: logs de Apache, logs de Aplicaciones, logs de bases de datos, clickstreams, datos procedentes de sensores…
  • Rápidos tiempos de respuesta.
  • Queries, inserts y updates en tiempo real.
  • Creación de tablas y campos dinámicamente.
  • Esquemas de bases de datos que varían frecuentemente.
  • Sistemas de tiempo-real donde la baja latencia es crítica. Videojuegos pueden ser un ejemplo.
  • Conteo de visitas a una página web en tiempo-real.
  • Tratamiento de documentos y sistemas documentales. Las bases de datos documentales ofrecen la posibilidad de almacenar documentos complejos que son difícilmente adaptables en una base de datos relacional.
  • Bases de datos de tipo grafo: genealogía, gestión de redes de transporte, relaciones entre productos y personas.
  • Detección del fraude.
  • Recomendaciones en tiempo real y redes sociales.
  • Almacenamiento masivo de streams de información de IoT.

Hadoop

  • Análisis de sensores y operativa digitalizada:
    • Datos de máquinas de producción, datos meteorológicos, datos de posicionamiento, datos vitales en Sanidad…
    • Datos de operativa y producción
  • Análisis de logs o clickstreams
    • Análisis del comportamiento de los usuarios
    • Análisis de seguridad de redes
  • Análisis de sentimiento
  • Off-loading de datos o transformaciones (casos ETL) del Datawarehouse a Hadoop
  • Incorporación de nuevas fuentes de datos que el DW no puede gestionar.
  • Analítica descriptiva, predictiva o prescriptiva.
  • Data archiving: datos históricos con accesos poco frecuentes.
  • Detección del fraude.

Como conclusión, cabe destacar que Hadoop y NoSQL trabajan muy bien juntos. De hecho, para cualquier plataforma en la que en realidad se requiera de un análisis de Big Data profundo, ambas tecnologías deben ser desplegadas juntas. De este modo, NoSQL sería utilizado para datos interactivos mientras que Hadoop estaría destinado al análisis y procesamiento de grandes sets de datos.