Consigue una latencia inferior a un segundo en tus cargas de trabajo operacionales más críticas con flujos declarativos y receptores
por Jerry Peng, Abhay Bothra, Sudhanva Huruli, Navneeth Nair, Anant Pingle y Murali Talluri
El año pasado introdujimos el Real-Time Mode (RTM), que permitió a los clientes crear casos de uso operativos y de baja latencia. Esto cambió las reglas del juego porque permitió a los clientes procesar datos en streaming en milisegundos, hasta 100 veces más rápido que la arquitectura de micro-lotes tradicional. Además, ya no necesitaban mantener motores separados y especializados como Flink junto a Spark, lo que eliminó bases de código duplicadas, modelos de gobernanza fragmentados y sobrecarga operativa.
Hoy anunciamos que RTM en Spark Declarative Pipelines (SDP) ya está disponible de forma general (Generally Available). SDP se ha convertido en la forma estándar de crear pipelines de streaming y ETL en Databricks, ya que gestiona automáticamente la resolución de dependencias, el procesamiento incremental, la orquestación, la recuperación ante fallos y la calidad de los datos. Con RTM, los clientes pueden crear pipelines operativos de baja latencia sin perder ninguna de las ventajas de SDP. Ya sea para la puntuación de fraudes, alertas en tiempo real o el envío de características recientes a almacenes operativos, ahora puedes usar SDP en todos estos casos de uso.
RTM es una evolución del motor de Spark Structured Streaming que logra latencias de extremo a extremo en el rango de los milisegundos. Lo hace transmitiendo datos de forma continua, ejecutando todas las etapas de consulta simultáneamente y pasando los datos entre las etapas tan pronto como se producen. Para ver un análisis detallado de la arquitectura, lee el blog: “Cómo superar la barrera de los micro-lotes: La arquitectura del Real-Time Mode de Apache Spark”.
RTM puede admitir cualquier carga de trabajo que se beneficie de convertir datos en decisiones en milisegundos. Algunos ejemplos de casos de uso incluyen la detección de fraudes, la personalización en vivo, los sistemas de recomendación en tiempo real y el cálculo de características en tiempo real. Comparamos RTM con Apache Flink en cargas de trabajo de clientes reales que realizaban cálculos de características, y RTM es hasta un 92 % más rápido que los motores especializados como Flink. A continuación se muestran los benchmarks. Para obtener más información sobre los conjuntos de datos y las consultas de referencia, consulta este repositorio de GitHub.

Los clientes utilizan cada vez más SDP de forma predeterminada para sus cargas de trabajo ETL. Con RTM, SDP ahora admite todas las cargas de trabajo de streaming, incluido el streaming operativo de baja latencia, lo que permite a los clientes usar un único framework en todos los pipelines. Un solo framework significa una única pila de observabilidad, un único modelo de facturación y cero fragmentación entre diferentes API.
SDP serverless va más allá. No hay que elegir capacidad de cómputo ni dimensionar ningún clúster. Obtienes una latencia inferior a un segundo, sin ajustes de infraestructura complejos, y pagas solo por los núcleos que usa tu consulta. Los flujos de RTM también reciben características de SDP como actualizaciones sin versión y mantenimiento con un tiempo de inactividad mínimo, lo que reduce tanto el trabajo operativo como las interrupciones de las actualizaciones.
Un caso de uso en el que RTM en SDP tiene un impacto inmediato es el cálculo de características en tiempo real. Los modelos de ML para la detección de fraudes o la personalización dependen de señales recientes, como el monto total de las transacciones de un usuario en los últimos 10 minutos, para hacer predicciones precisas. Calcular estas agregaciones de ventanas deslizantes y llevarlas a un almacén en línea en cuestión de milisegundos es donde RTM en SDP cierra la brecha. Databricks Feature Store utiliza exactamente esta arquitectura para ofrecer una latencia p99 de extremo a extremo de 200 ms desde Kafka hasta el almacén de características en línea.
El Real-Time Mode requiere que el modo de pipeline sea continuous y que spark.databricks.streaming.realTimeMode.enabled esté configurado en true para que comience a funcionar.
El modo en tiempo real requiere un flujo de actualización. Usa dp.create_sink() para definir el destino de salida, y luego usa el decorador @dp.update_flow con pipelines.trigger configurado en "RealTime" y target apuntando al destino (sink).
Para ver los orígenes y destinos compatibles, consulta la documentación.
Los casos de uso como la detección de fraudes o la personalización en tiempo real requieren no solo que las características se calculen en tiempo real, sino también que lleguen a un almacén consultable de baja latencia. Un modelo de fraude necesita la última transacción de un cliente antes de que se apruebe, y un motor de personalización necesita leer lo que un usuario acaba de explorar.
Hoy en día, puedes escribir en cualquier destino personalizado como Lakebase, Redis o cualquier otro almacén OLTP desde SDP utilizando un ForEach sink. Define el escritor (writer), regístralo como un foreach_sink y conéctalo a un update_flow.
Las características llegan a tu almacén operativo a los pocos milisegundos de ser producidas, sin necesidad de sincronización entre el entorno offline y el online de por medio. Las aplicaciones y los modelos pueden consultarlas con una latencia ultrabaja.
¿Qué sigue para RTM en serverless?
RTM extiende Spark Declarative Pipelines a una nueva clase de cargas de trabajo: aplicaciones operativas y sensibles a la latencia que exigen una respuesta inmediata a los datos en streaming. Al llevar una latencia inferior a un segundo a las API de SDP que tu equipo ya utiliza, elimina la necesidad de operar un framework o motor separado para tus pipelines más críticos en función del tiempo. Ya sea que estés creando pipelines de detección de fraudes, motores de personalización o sistemas de cálculo de características de ML, el modo en tiempo real te ofrece la latencia que tu aplicación exige con la simplicidad de SDP.
El Real-Time Mode en Spark Declarative Pipelines ya está disponible de forma general (Generally Available).
Consulta los siguientes recursos para comenzar a usar RTM en SDP:
¿Qué es el Real-Time Mode (RTM) en Spark Declarative Pipelines?
El Real-Time Mode (RTM) permite que Spark Declarative Pipelines (SDP) procese datos en streaming con una latencia de extremo a extremo en el rango de los milisegundos. Transmite datos de forma continua, ejecuta todas las etapas de consulta al mismo tiempo y pasa los datos entre las etapas tan pronto como se producen. Los pipelines en tiempo real se benefician de la orquestación y la recuperación automática ante fallos de SDP.
¿Está disponible el Real-Time Mode en Spark Declarative Pipelines?
Sí. El modo en tiempo real en Spark Declarative Pipelines ya está disponible de forma general. Incorpora el modo en tiempo real que ya estaba disponible en Spark Structured Streaming a los pipelines de SDP.
¿Cómo activo el modo en tiempo real en un pipeline?
Configura el pipeline en el modo continuous y establece spark.databricks.streaming.realTimeMode.enabled en true. A continuación, define un flujo de actualización con pipelines.trigger configurado en "RealTime" y un destino que apunte a un receptor.
¿Puede un pipeline en tiempo real escribir en Lakebase u otro almacén OLTP?
Sí. Define un receptor ForEach con un escritor que implemente open, process y close, y luego apunta un flujo en tiempo real hacia él. Esto funciona para Lakebase, Redis o cualquier otro almacén OLTP.
¿Para qué casos de uso se ha creado el modo en tiempo real en Spark Declarative Pipelines?
El modo en tiempo real se ha diseñado para cargas de trabajo operativas que convierten datos en streaming en decisiones en milisegundos. Algunos ejemplos son la detección de fraudes, la personalización en vivo, las recomendaciones en tiempo real y el cálculo de características en tiempo real. El almacén de características de Databricks utiliza esta arquitectura para alcanzar una latencia p99 de 200 ms desde Apache Kafka hasta el almacén de características en línea.
(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original
Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.