Spark Structured Streaming Adopta Modo en Tiempo Real para Latencia Ultrabaja
Apache Spark Structured Streaming ha servido durante mucho tiempo como una base robusta para pipelines de datos de alta escala y misión crítica, posibilitando desde sofisticadas operaciones de Extracción, Transformación y Carga (ETL) de streaming hasta análisis casi en tiempo real y aplicaciones de aprendizaje automático. Ahora, una evolución significativa está en marcha con la introducción del “modo en tiempo real”, un nuevo tipo de disparador diseñado para extender las capacidades de Spark a una clase completamente nueva de cargas de trabajo de latencia ultrabaja. Esta innovación procesa los eventos a medida que llegan, logrando latencias tan bajas como decenas de milisegundos, marcando un avance sustancial para las necesidades de procesamiento de datos inmediatas.
A diferencia de sus predecesores, como el disparador ProcessingTime
que opera en horarios fijos, o el disparador AvailableNow
que procesa todos los datos disponibles antes de detenerse, el modo en tiempo real ofrece procesamiento continuo de datos. Esto significa que los resultados se emiten en el momento en que están listos, lo que permite casos de uso verdaderamente instantáneos. Las empresas ahora pueden aprovechar Spark para escenarios que exigen una acción inmediata, como la detección de fraude en tiempo real, la personalización dinámica y la entrega de características de aprendizaje automático con un retraso mínimo. Crucialmente, esta capacidad mejorada se integra sin problemas, sin requerir cambios en las bases de código existentes ni esfuerzos de replataforma para los usuarios actuales de Structured Streaming. Este nuevo modo está siendo contribuido al proyecto de código abierto Apache Spark y actualmente es accesible en Public Preview en Databricks.
En su esencia, el modo en tiempo real ofrece un procesamiento continuo y de baja latencia al ejecutar trabajos de streaming de larga duración que programan etapas concurrentemente. Los datos fluyen entre tareas en memoria, facilitado por una técnica conocida como streaming shuffle. Este enfoque reduce significativamente la sobrecarga de coordinación, elimina los retrasos de programación fijos inherentes a los modos de micro-lotes tradicionales y ofrece consistentemente un rendimiento por debajo del segundo. Las pruebas internas de Databricks han demostrado un rendimiento impresionante, con latencias del percentil 99 (p99) que van desde unos pocos milisegundos hasta aproximadamente 300 milisegundos, dependiendo de la complejidad de las transformaciones de datos involucradas. Por ejemplo, algunos benchmarks mostraron latencias p99 tan bajas como un solo dígito de milisegundos, afirmando su capacidad para aplicaciones exigentes en tiempo real.
Las implicaciones del modo en tiempo real son profundas para las aplicaciones de streaming que requieren tiempos de respuesta rápidos, especialmente aquellas integrales para operaciones comerciales críticas. Los primeros adoptantes ya han implementado esta tecnología en una amplia gama de cargas de trabajo, mostrando su potencial transformador. Por ejemplo, un banco global ahora está procesando transacciones de tarjetas de crédito de Kafka en tiempo real, marcando actividades sospechosas en unos impresionantes 200 milisegundos. Esta capacidad reduce drásticamente el riesgo financiero y acelera los tiempos de respuesta sin necesidad de una revisión completa de su infraestructura existente.
Más allá de los servicios financieros, el modo en tiempo real está revolucionando las experiencias personalizadas en el comercio minorista y los medios. Un proveedor de streaming Over-The-Top (OTT) ahora puede actualizar las recomendaciones de contenido inmediatamente después de que un usuario termine de ver un programa, mientras que una plataforma líder de comercio electrónico recalcula las ofertas de productos a medida que los clientes navegan, manteniendo un alto compromiso a través de bucles de retroalimentación de menos de un segundo. De manera similar, los principales sitios de viajes están aprovechando este modo para rastrear y mostrar las búsquedas recientes de cada usuario en diferentes dispositivos en tiempo real, con cada nueva consulta actualizando instantáneamente la caché de sesión, lo que permite resultados personalizados y autocompletado sin ningún retraso perceptible. En el ámbito del aprendizaje automático, una aplicación de entrega de alimentos está utilizando el modo en tiempo real para actualizar características como la ubicación del conductor y los tiempos de preparación en milisegundos. Estas actualizaciones se alimentan directamente de los modelos de aprendizaje automático y las aplicaciones orientadas al usuario, lo que lleva a una mayor precisión en el tiempo estimado de llegada (ETA) y una experiencia mejorada para el cliente.
Raja Kanchumarthi, Ingeniero de Datos Principal en Network International, destacó los beneficios tangibles al afirmar: “Para un pipeline de autorización de pagos de misión crítica, donde realizamos cifrado y otras transformaciones, logramos una latencia de extremo a extremo P99 de solo 15 milisegundos. Somos optimistas sobre la escalada de este procesamiento de baja latencia en nuestros flujos de datos mientras cumplimos consistentemente con estrictos SLA”. Estas diversas aplicaciones subrayan la versatilidad del modo en tiempo real, demostrando su capacidad para convertir datos en decisiones inmediatas en un espectro de casos de uso, desde alertas de sensores IoT y visibilidad de la cadena de suministro hasta telemetría de juegos en vivo y personalización en la aplicación.