Paradigmas BigData: La arquitectura Lambda.

08:00

Hoy entramos en el tercer paradigma famosete en estos últimos años, en esto del #BigData : La arquitectura Lambda.

Arquitectura Half-life...ejem digo Lambda!!!
Aquí tenéis los anteriores post relacionados:

Paradigmas BigData - La Arquitectura Lambda

Nathan Marz, creador de Storm y Cascalog es un hombre ligado a Bigdata desde hace muchos años. Acuñó como tal a "la arquitectura lambda" (aquí tenéis un extracto del mismo). Está haciendo un libro bastante interesante sobre Bigdata y análisis de datos en tiempo real (aquí tenéis el primer capítulo de manera gratuita)

Veréis, el problema con el que nos encontramos al tratar con grandes volúmenes de datos es que no hay un sistema, técnica o modo predefinido de tratar con ellos. Hay muchas empresas que ven esta problemática y están pensando en cómo solucionar este gap entre lo que quieren los usuarios y lo que realmente se puede hacer. Por regla general no nos queda otra que buscarnos las habichuelas, remangarnos, leer, llorar, leer y llorar hasta que hacemos realidad (y de manera correcta en el Mundo Real) los deseos de la industria.

Y aquí es donde entra en juego personas como Nathan que piensan en cómo solucionar todos estos problemas de la manera más sencilla posible. La arquitectura que el propone y que veremos hoy, se basa en la sensatez y la experiencia, y ahí reside su éxito.

El truco: descomponer y ser ordenados

Nathan propone tres capas: Capa de Velocidad | Capa de Servicio | Capa de Batch (o Por Lotes)

Una aproximación a la Capa Batch

Imaginemos que queremos hacer una consulta que aplique una función a todos los datos (terabytes o petabytes) pero que además sea "en tiempo real" o "en el aire". Esto ahora mismo es uno de los principales problemas ya sea por disponibilidad de las fuentes de origen de los datos, por coste o por propia funcionalidad. Otra idea maléfica que podemos tener es crear "vistas batch" consistentes en crear procesos batch pre-computerizados (que mal suena). Esta vista batch pre-computerizada estaría indexada y sería capaz de acceder a grandes cantidades de datos pero realizando lectura de datos aleatorias:

Dibujo original de Nathan Marz sobre Vistas Batch pre-computerizadas

Entonces, si quisiéramos acceder a un gran volumen de datos, este sistema nos ofrecería en un tiempo asumible datos, pero con el problema de que al seleccionarse de manera aleatoria, tendríamos que lanzar el proceso muchísimas veces para poder analizar todo el dataset, teniendo problemas de latencia y tiempo.

La Capa Batch

La parte encargada de la arquitectura lambda de pre-computerizar las vista Batch se llama Capa Batch. Esta capa almacena todo el "Dataset Maestro" y le aplica las vistas Batch accediendo a datos de manera aleatoria. Aquí las tecnologías utilizadas (por arquitectura) son Hadoop o Spark.

La Capa de Servicio

Lo que hace esta capa es proporcionarnos acceso a datos a través de una selección aleatoria de las vistas Batch. La teoría dice que esta capa satisface: Robustez y tolerancia a fallos, Escalabilidad, Extensibilidad, Queries Ad-hoc, Mantenimiento Mínimo, Debuggable. Para más información ir directamente al paper de Nathan, que el tío lo explica genial.

La Capa de Velocidad

Los datos de entrada los iremos almacenando de manera incremental en el dataset, esto quiere decir que según lo vayamos recibiendo, leyendo y computerizando, lo iremos escribiendo. La lectura y escritura de datos se realiza de manera aleatoria.

La idea es que cuando necesitamos acceder a datos, se realice tanto a través de la capa de Servicio (acordaros que da acceso a vistas aleatorias Batch) como a través de la capa de Velocidad. El siguiente gráfico lo ilustra:

Otro gráfico de Nathan que viene a decir lo que hemos comentado anteriormente

Recapitulando tendríamos la siguiente arquitectura (una vez pegadas todas las piezas):
Nathan M. - Arquitectura Lambda

De nuevo y no quiero ser "pesao", para saber más sobre esto, os recomiendo su paper.

Hay empresas como Lambdoop que ya hace cosillas así y les funciona. No deja de ser otra solución en este gran océano de datos.

¡Nos vemos en el siguiente grumetes!

Fuentes:

Blog de Nathan Marz
Lambda-arquitecture.net
Blog de Soraya Paniagua

You Might Also Like

0 comentarios

Sé respetuoso/a, en este blog caben todo tipo de opiniones con respeto y serenidad.

statistics :: ヽ(*・ω・)ノ

Contact Form :: (」゜ロ゜)」