Cabecera personalizada

El blog de Mikel Niño
Industria 4.0, Big Data Analytics, emprendimiento digital y nuevos modelos de negocio
Mostrando entradas con la etiqueta nathan-marz. Mostrar todas las entradas
Mostrando entradas con la etiqueta nathan-marz. Mostrar todas las entradas

Funciones básicas de las capas de la Arquitectura Lambda

En una entrada anterior presentábamos la Arquitectura Lambda como el modelo abstracto ideado por Nathan Marz para el diseño de sistemas Big Data, integrando tanto el procesamiento de datos en batch como en tiempo real. En esta entrada voy a detenerme con más detalle en los principios que rigen el diseño de las diferentes capas de la Arquitectura Lambda (capa batch, capa de servicio y capa de velocidad), para entender mejor su necesidad y la función básica que cumple cada una de ellas.

La Arquitectura Lambda para el diseño de sistemas Big Data

Al hablar del procesamiento de streams de datos en tiempo real ya comentábamos que no es un enfoque por el que deba optarse renunciando al enfoque batch, sino que podemos aspirar a diseñar sistemas Big Data los integren, para así poder dar una respuesta global a diferentes necesidades de análisis sobre la misma fuente de datos masivos. Esta idea de proporcionar una aproximación genérica al diseño de sistemas Big Data, integrando diferentes modalidades de tratamiento de datos, y que se pueda concretar en cada caso con las tecnologías específicas adecuadas, es en la que Nathan Marz lleva trabajando los últimos años, definida como “Lambda Architecture” (Arquitectura Lambda) y cuyo desarrollo queda recogido en el libro “Big Data” que ha publicado en abril de 2015 junto con James Warren.

Procesamiento de fuentes continuas de datos (“streams”) en tiempo real: Apache Storm

Una arquitectura de procesamiento de datos masivos que se basa en el paradigma MapReduce (como la que nos proporciona Apache Hadoop) está diseñada para trabajar en lo que se conoce como “batch” (por lotes, o en diferido), es decir, partimos de que ya hemos hecho una tarea de recopilación de esos grandes volúmenes de datos “en crudo” y, una vez que los tenemos todos almacenados en nuestro sistema, los procesamos usando estas soluciones. De todas maneras, este no es el único enfoque que podemos emplear para analizar datos, ya que en ocasiones no nos interesa (o no es posible) tener que almacenarlos todos esos datos antes de procesarlos, sino que queremos procesarlos “al vuelo”, a medida que se generan y nos llegan de su fuente original, y descartarlos una vez extraída la información relevante. Para este tipo de enfoques nacieron soluciones como Apache Storm.