Arquitectura Lambda en el Procesamiento de Datos

  • Tiempo de lectura:10 minutos de lectura
  • Autor de la entrada:
  • Última modificación de la entrada:15/07/2024

En esta entrada aprenderás las características más importantes de la arquitectura lambda como framework de procesamiento de grandes cantidades de datos. Conocerás de una manera sencilla las capas que la integran, las tecnologías más comunes y algunas alternativas. ¡Sigue leyendo!

Arquitectura lambda

¿Qué es la Arquitectura Lambda?

La arquitectura lambda es un framework de diseño para procesar big data que usa de forma simultánea flujos de datos en streaming y en batch. El procesamiento en streaming consiste en procesar y analizar los datos al vuelo sin persistirlos en capas de almacenamiento. El procesamiento batch, por otro lado, procesa los datos de manera periódica una vez que han sido persistidos en bases de datos o en el data warehouse.

La arquitectura lambda se puede usar para reducir las latencias, escalar la solución y aumentar la tolerancia a fallos para procesar simultáneamente flujos de datos batch y streaming.

Como hemos visto, este diseño de arquitectura tiene dos pipelines de datos diferenciadas:

  • Pipeline de procesamiento Batch
  • Pipeline de procesamiento en Streaming

Ambas pipelines se ejecutan de forma distribuida y ayudan a analizar los datos y extraer métricas y vistas para tomar decisiones de negocio informadas. El caso de uso más común es la recolección de eventos que se añaden a los datos existentes, de los que se determina el estado.

El modelo se ideó originalmente con 4 capas principales:

Capa de Ingesta o de Consumo de datos

Esta capa es la responsable de obtener los datos de las fuentes. Las tecnologías más populares aquí son Apache Kafka, Apache NiFi o Flume. La recolección de datos puede suceder en modo batch o en streaming. Esto afectará a las tecnologías que serán necesarias en el resto de la pipeline de datos. Las fuentes de datos usadas se pueden añadir o eliminar según las demandas y necesidades del proyecto.

Esquema Arquitectura Lambda Big Data
Esquema Arquitectura Lambda Big Data

Capa Batch

En el caso del flujo batch, la herramienta de ingesta acumula los datos en un almacenamiento persistente antes de realizar un procesamiento. Es común que esta capa de almacenamiento sea distribuida como lo es HDFS, también con tolerancia a fallos y replicación. El procesamiento se puede realizar de una forma distribuida como Spark o con bases de datos relacionales y nosql como Snowflake o Synapse Analytics.

La capa batch tiene disponible todos los datasets persistidos en el sistema, puede ejecutar procesos de consolidación y actualizar las vistas con los datos más recientes.

Capa de Streaming o Speed Layer

La capa de streaming o speed layer procesa los datos sin necesidad de persistirlos. El propósito de esta capa es reducir los intervalos de tiempo que la capa Batch no es capaz de procesar. Por lo tanto, permite que los datos estén disponibles en el menor tiempo posible, aunque para ello se deba sacrificar algo de precisión. Las tecnologías que se usan para realizar esta tarea pueden ser Spark Streaming, Flink o Kafka Streams.

Cada evento recibido puede desencadenar este procesamiento y un cambio en las vistas y tablas asociadas, de forma que se tenga una visión en tiempo real. Los resultados se almacenan en bases de datos NoSQL que reducen la latencia.

Capa de servicio o Serving Layer

La última capa de la arquitectura es la de servicio. Es la encargada de combinar los resultados de las pipelines batch y de streaming para tener una vista unificada de los resultados. Las actualizaciones de streaming se producen en tiempo real y las actualizaciones de la capa batch de manera periódica.

La capa de servicio da respuesta a las consultas específicas sobre los datos preprocesados. Algunas tecnologías adecuadas para realizar esta tarea son Apache Druid, Apache Impala, Apache Hive, Cosmos DB o Elasticsearch.

Alternativas a la Arquitectura Lambda

La arquitectura Lambda tiene algunas limitaciones. Cada una de las capas necesita un mantenimiento específico, tecnologías y aplicaciones diferentes para funcionar correctamente. Además, las dos pipelines están totalmente acopladas, ya que la capa batch necesita sincronizar los nuevos eventos generados por la capa de streaming cuando se ejecuta.

Las dos alternativas más usadas en sistemas de procesamiento big data son la arquitectura Kappa y la arquitectura Delta. La arquitectura Kappa se ejecuta completamente en streaming, todos los datos se tratan como eventos y son procesados cuando entran en el sistema. La arquitectura Delta añade una capa de almacenamiento en forma de tabla, sobre la que se persisten todos los datos y se puede usar en cualquier aplicación. La tecnología Delta Lake desarrollada por Databricks es el ejemplo más directo de su aplicación.

Formación Recomendada Arquitecto de Datos

Curso Arquitecto Google Cloud

Preparación para la certificación de Google Cloud: Cloud Engineer Professional Certificate en Español

En 2019, Global Knowledge clasificó Google Cloud Professional Cloud Architect como una de las certificaciones mejor pagadas de TI.

Este programa te proporciona habilidades para impulsar tu carrera de arquitectura en la nube y te ofrece una ruta para obtener la certificación Google Cloud Professional Cloud Architect, reconocida en la industria. También obtendrás experiencia real a través de proyectos de Qwiklabs que podrás compartir con posibles empleadores.

Para los participantes que quieran certificarse, este programa ofrece preguntas de muestra similares a las del examen y soluciones y cuestionarios de práctica.

Preguntas Frecuentes – FAQ

¿Cuáles son los componentes principales de la arquitectura Lambda?

Los componentes principales de la arquitectura Lambda incluyen la capa de ingestión de datos, la capa de procesamiento en tiempo real (speed layer), la capa de procesamiento batch, y la capa de servicio (serving layer). La capa de ingestión recibe datos de múltiples fuentes, la speed layer procesa datos en tiempo real para proporcionar vistas actualizadas rápidamente, la batch layer realiza análisis más exhaustivos y completos, y la serving layer combina los resultados de ambas capas para ofrecer datos listos para ser consumidos por aplicaciones y usuarios finales.

¿Cómo se maneja la consistencia de datos en la arquitectura Lambda?

En la arquitectura Lambda, la consistencia de los datos se maneja mediante la combinación de resultados de las capas de procesamiento en tiempo real y batch. La speed layer proporciona datos rápidamente pero puede ser menos precisa debido a la inmediatez del procesamiento, mientras que la batch layer asegura la precisión y consistencia mediante el procesamiento de grandes volúmenes de datos con un cierto retraso. La serving layer se encarga de fusionar estos resultados, proporcionando una vista consistente y actualizada de los datos.

¿Cómo se compara la arquitectura Lambda con la arquitectura Kappa?

La arquitectura Kappa es una alternativa a la arquitectura Lambda que simplifica el procesamiento de datos al eliminar la capa de procesamiento batch y enfocarse únicamente en el procesamiento en tiempo real. Mientras que la arquitectura Lambda utiliza tanto el procesamiento en tiempo real como batch para ofrecer flexibilidad y consistencia, la arquitectura Kappa trata todos los datos como streams y re-procesa los datos históricos en el mismo pipeline de streaming cuando es necesario.

Deja una respuesta