Compartir a través de


Modo en tiempo real en Structured Streaming

En esta página se describen los conceptos subyacentes al modo en tiempo real en Structured Streaming, lo que incluye lo que es, cómo logra una baja latencia y cuándo usarlo.

¿Qué es el modo en tiempo real?

El modo en tiempo real es un tipo de desencadenador para Structured Streaming que permite el procesamiento de datos de latencia ultra baja con latencia de un extremo a otro tan bajo como cinco milisegundos. Use el modo en tiempo real para cargas de trabajo operativas que requieren respuesta inmediata a los datos de streaming, como la detección de fraudes, la personalización en tiempo real y los sistemas de toma de decisiones instantáneos.

Cómo el modo en tiempo real logra una latencia baja

El modo en tiempo real mejora la arquitectura de ejecución mediante:

  • Ejecutar lotes de larga duración (el valor predeterminado es de cinco minutos), en el que el sistema procesa los datos a medida que está disponible en el origen.
  • Programar todas las fases de la consulta simultáneamente. Esto requiere que el número de espacios de tarea disponibles sea igual o mayor al número de tareas de todas las etapas en un lote.
  • Pasar datos entre fases tan pronto como se produzca mediante un orden aleatorio de streaming.

Al final del procesamiento de un lote y antes de que se inicie el siguiente lote, los puntos de control de Structured Streaming progresan y publican métricas. La duración del lote afecta a la frecuencia de creación de puntos de control.

  • Para lotes más largos, el registro de punto de control se produce con menos frecuencia, lo que implica reproducciones más largas en caso de fallo y una disponibilidad de métricas retrasada.
  • Para lotes más cortos, los puntos de control se producen con más frecuencia, lo que puede afectar a la latencia.

Azure Databricks recomienda comparar el modo en tiempo real con la carga de trabajo de destino para encontrar el intervalo de desencadenador adecuado.

Cuándo usar el modo en tiempo real

Seleccione el modo en tiempo real cuando el caso de uso requiera:

  • Latencia de sub-segundo: aplicaciones que necesitan responder a los datos en milisegundos. Por ejemplo, bloquear o marcar una transacción de tarjeta de crédito en tiempo real si una puntuación de fraude supera un umbral en función de una ubicación inusual, un tamaño de transacción grande o patrones de gasto rápidos.
  • Toma de decisiones operativas: sistemas que desencadenan acciones inmediatas basadas en los datos entrantes. Por ejemplo, entregar un mensaje promocional cuando los datos de la secuencia de clics muestran que un usuario ha estado navegando por un producto, ofreciendo un descuento si compra en los próximos 15 minutos.
  • Procesamiento continuo: cargas de trabajo en las que los datos deben procesarse en cuanto llegan, en lugar de en lotes periódicos.

Utiliza el modo de micro-lotes (el desencadenador predeterminado de Structured Streaming) cuando tu caso de uso requiera:

  • Procesamiento analítico: canalizaciones ETL, transformaciones de datos e implementaciones de arquitectura medallion donde los requisitos de latencia se miden en segundos o minutos.
  • Optimización de costos: las cargas de trabajo en las que no se requiere la latencia de sub-segundo, ya que el modo en tiempo real requiere recursos de proceso dedicados.
  • La frecuencia del punto de comprobación es importante: aplicaciones que se benefician de puntos de control más frecuentes para una recuperación más rápida.

Compatibilidad y limitaciones de funciones

Para obtener una lista completa de entornos, lenguajes, tipos de proceso, orígenes, receptores, operadores y limitaciones conocidas, consulte Referencia del modo en tiempo real.

Recursos adicionales