Compartir a través de


Tutorial: Ejecución de una carga de trabajo de streaming en tiempo real

El modo en tiempo real permite el streaming de latencia ultra baja con latencia de un extremo a otro tan bajo como cinco milisegundos, lo que lo convierte en ideal para cargas de trabajo operativas como la detección de fraudes y la personalización en tiempo real. Este tutorial le guía a través de la configuración de la primera consulta de streaming en tiempo real mediante un ejemplo sencillo.

Para obtener información conceptual sobre el modo en tiempo real, cuándo usarlo y las características admitidas, consulte Modo en tiempo real en Structured Streaming. Para conocer los requisitos de configuración, consulte Configuración del modo en tiempo real.

Requisitos

Antes de empezar, asegúrese de tener permisos para crear un clúster de proceso clásico que use la configuración especificada en Configuración del modo en tiempo real. Como alternativa, póngase en contacto con el administrador del área de trabajo para crear un clúster en modo en tiempo real.

Paso 1: Crear un cuaderno

Los cuadernos proporcionan un entorno interactivo para desarrollar y probar consultas de streaming. Use este cuaderno para escribir la consulta en tiempo real y ver la actualización de resultados continuamente.

Para crear un cuaderno:

  1. Haga clic en Nuevo en la barra lateral y, a continuación, haga clic en el icono Bloc de notas.Cuaderno.
  2. En el menú desplegable de cómputo, seleccione su grupo en modo en tiempo real.
  3. Seleccione Python o Scala como idioma predeterminado.

Paso 2: Ejecución de una consulta en modo en tiempo real

Copie y pegue el código siguiente en una celda del cuaderno y ejecútelo. En este ejemplo se usa un origen de velocidad, que genera filas a una velocidad especificada y muestra los resultados en tiempo real.

Nota:

La display función con realTime desencadenador está disponible en Databricks Runtime 17.1 y versiones posteriores.

Python

inputDF = (
  spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
)
display(inputDF, realTime="5 minutes", outputMode="update")

Scala

import org.apache.spark.sql.streaming.Trigger
import org.apache.spark.sql.streaming.OutputMode

val inputDF = spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
display(inputDF, trigger=Trigger.RealTime(), outputMode=OutputMode.Update())

Después de ejecutar el código, verá una tabla que se actualiza en tiempo real a medida que se generan nuevas filas. La tabla muestra una timestamp columna y una value columna que se incrementa con cada fila.

Descripción del código

El código anterior muestra los componentes esenciales de una consulta de streaming en tiempo real. En las tablas siguientes se explican los parámetros clave y lo que controlan:

Python

Parámetro Descripción
format("rate") Usa el origen de velocidad, un origen integrado que genera filas a una velocidad configurable. Esto es útil para realizar pruebas sin dependencias externas.
numPartitions Establece el número de particiones de los datos generados.
rowsPerSecond Controla cuántas filas se generan por segundo.
realTime="5 minutes" Habilita el modo en tiempo real. El intervalo especifica la frecuencia con la que progresan los puntos de control de consulta. Intervalos más largos significan puntos de comprobación menos frecuentes, pero tiempos de recuperación potencialmente más largos después de errores.
outputMode="update" El modo en tiempo real requiere el modo de salida de actualización.

Scala

Parámetro Descripción
format("rate") Usa el origen de velocidad, un origen integrado que genera filas a una velocidad configurable. Esto es útil para realizar pruebas sin dependencias externas.
numPartitions Establece el número de particiones de los datos generados.
rowsPerSecond Controla cuántas filas se generan por segundo.
Trigger.RealTime() Habilita el modo en tiempo real con el intervalo de punto de comprobación predeterminado. También puede especificar un intervalo, por ejemplo Trigger.RealTime("5 minutes").
OutputMode.Update() El modo en tiempo real requiere el modo de salida de actualización.

Paso 3: Validar los resultados

Al ejecutar la consulta, la display función crea una tabla que se actualiza en tiempo real a medida que el origen de velocidad genera nuevas filas. Cada fila contiene:

  • Marca de tiempo del momento en que la fuente de tasas generó la fila.
  • Contador de aumento monotonico que se incrementa con cada nueva fila.

La tabla se actualiza continuamente con una latencia mínima, lo que muestra cómo el modo en tiempo real procesa los datos tan pronto como esté disponible. Esta es la ventaja principal del modo en tiempo real: la capacidad de ver y actuar en los datos inmediatamente en lugar de esperar al procesamiento por lotes.

Recursos adicionales

Ahora que ha ejecutado su primera consulta en tiempo real, explore estos recursos para desarrollar aplicaciones de streaming de producción con Kafka, Kinesis y otros orígenes admitidos.