Modo en tiempo real en Structured Streaming

¿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 y la personalización en tiempo real.

El modo de tiempo real también está disponible en las canalizaciones declarativas de Lakeflow para Spark. Consulte Uso del modo en tiempo real en canalizaciones declarativas de Spark de Lakeflow.

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.

Entre lotes, 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.
  • Recuperación más rápida: cargas de trabajo que necesitan puntos de control frecuentes para minimizar el tiempo de reproducción después de un error.

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