Conecta con nosotros

A Fondo

Data Streaming: cinco plataformas que permiten analizar datos en tiempo real

Publicado el

Análisis de datos en tiempo real que permitan tomar mejores decisiones. Esto es lo que prometen las conocidas como «Plataformas de Streaming de Datos» y que se han vuelto muy populares en los últimos años, debido al creciente volumen y velocidad de los datos generados por las empresas y dispositivos conectados.

En este sentido, desarrollos Open Source como Apache Kafka, o plataformas como Confluent, AWS Kinesis, IBM Streams  o Microsoft Azure Stream Analytics, han encontrado distintos casos de uso a la hora de detectar fraude en transacciones financieras, monitorizar infraestructuras, analizar logs, mejorar la experiencia del cliente, etc.

Hoy os hablamos de las principales plataformas que podéis encontrar en este espacio y de cómo permiten realizar precisamente ese análisis de datos a medida que se están transmitiendo, en lugar de tener que esperar a que se almacenen y procesen en lotes.

Apache Kafka

Apache Kafka es una plataforma de streaming de datos de código abierto que se utiliza para la recopilación, almacenamiento y procesamiento de datos en tiempo real. Fue desarrollado originalmente por ingenieros de LinkedIn en 2010 para satisfacer sus necesidades de procesamiento de datos y se convirtió en un proyecto de código abierto de la Apache Software Foundation en 2011.

La plataforma destaca por una escalabilidad que le permite procesar enormes cantidades de datos y cargas de trabajo de alto rendimiento. Para ello, utiliza un modelo de publicación-suscripción para la transmisión de datos. Es decir, los datos se envían a un clúster central (productores de datos) y posteriormente se envían a los consumidores de los mismos (aplicaciones).

Entre los casos de uso más habituales, encontramos la integración de distintas aplicaciones en sistemas heterogéneos, el procesamiento de eventos en tiempo real (como transacciones financieras, clics de usuarios, registros en servidores…con el objetivo de detectar patrones), la monitorización de infraestructuras  (a través del análisis de logs), o la gestión de datos en tiempo real en en escenarios IoT.

Confluent

Confluent es una compañía que se especializa en el desarrollo de soluciones de gestión de datos en tiempo real. Su producto principal es Confluent Platform, que está precisamente basada en Apache Kafka. No es casualidad ya que de hecho, Confluent fue fundada en 2014 por los mismo ingenieros que unos años antes habían  desarrollado Kafka, es decir: Jay Kreps, Neha Narkhede y Jun Rao.

Además de capacidades que ya encontramos en el desarrollo original, como su capacidad para procesar grandes cantidades de datos o su escalabilidad, Confluent destaca por sus amplias capacidades de conectividad (se integra con una amplia gama de herramientas), está diseñada para soportar arquitecturas de microservicios y ofrece características adicionales de seguridad.

Para las empresas es una solución interesante ya que ofrece una plataforma lista para usar, herramientas para la gestión y monitoreo de clusters y conectores pre-construidos para la integración de todo tipo de sistemas.

AWS Kinesis

La apuesta de Amazon Web Services para la gestión de datos en tiempo real es AWS Kinesis. Su funcionamiento es similar a Apache Kafka y está compuesto por tres servicios principales:  Kinesis Data Streams (transmisión y almacenamiento de datos), Kinesis Data Firehose (permite enviar datos en tiempo real a diferentes destinos sin necesidad de configurar y administrar infraestructuras) y Kinesis Data Analytics (procesamiento de datos en tiempo real utilizando SQL).

Kinesis ofrece características adicionales que permiten la integración con otros servicios de AWS, como Lambda, para el procesamiento de datos, CloudWatch para la monitorización de métricas, o Identity and Access Management (IAM) para la gestión de permisos y acceso a los recursos.

IBM Streams

La apuesta de IBM en este terreno es IBM Streams. Como las anteriores, la de IBM es una plataforma pensada para facilitar en análisis de datos en tiempo real. Sin embargo, presenta algunas diferencias que merece la pena que sean tenidas en cuenta. Mientras que las primeras se basan en sistemas de mensajería de flujo de eventos, la de IBM es una plataforma distribuida que se basa en la tecnología de procesamiento de flujos de datos.

En cuanto a la integración, mientras que Apache Kafka por ejemplo se integra con sistemas de datos (aplicaciones), IBM Stream puede hacerlo con fuentes, como puede ser bases de datos, redes sociales o sensores IoT. Además es una solución especialmente interesante en el caso de lo que necesitemos sea escalar horizontalmente, ya que permite procesar los datos en paralelo y en diferentes nodos.

IBM Streams se integra con otras herramientas de la compañía como son IBM Watson Studio, IBM Cloud o IBM BigSQL entre otras.

Microsoft Azure Stream Analytics

Finlamente, las empresas tienen a su disposición Microsoft Azure Streams Analytics, una plataforma que comparte muchas de las características que hemos visto tanto en IBM Streams como en AWS Kinesis, destacando tal vez como su principal factor diferencial su fuerte integración con otros productos de Microsoft.

Elegir entre una u otra plataforma dependerá en gran medida de la infraestructura previa con la que cuenta la empresa, pero también de los requisitos del proyecto, las características de la fuente de datos que vayamos a utilizar y las capacidades de procesamiento de datos necesarias.

Además de las que hemos visto, existen muchas otras plataformas de streaming de datos disponibles en el mercado, como Google Cloud Pub/Sub, Apache Flink, o Spark Streaming, entre otras.

Periodista tecnológico con más de una década de experiencia en el sector. Editor de MuyComputerPro y coordinador de MuySeguridad, la publicación de seguridad informática de referencia.

Lo más leído