Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica está en versión preliminar pública.
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.
Requisitos
- Tiene permiso para crear cómputo clásico.
- Databricks Runtime 17.1 o superior (necesario para usar la función
displaycon el modo en tiempo real).
Nota:
Si no tiene privilegios de creación de cálculo clásico, póngase en contacto con el administrador del entorno de trabajo para crear un clúster en modo de tiempo real utilizando la configuración del paso 1.
Paso 1: Creación de un proceso clásico para el modo en tiempo real
El modo en tiempo real requiere una configuración de proceso clásica específica para lograr una latencia ultra baja. Esta configuración garantiza que las tareas se ejecutan simultáneamente en todas las fases y los datos se procesan continuamente a medida que llegan, en lugar de en lotes.
Para crear un recurso de cálculo clásico configurado correctamente:
En el área de trabajo de Azure Databricks, haga clic en Proceso en la barra lateral.
Haga clic en Crear proceso.
Escriba un nombre.
Seleccione Databricks Runtime 17.1 o superior.
Aceleración clara de Photon (el modo en tiempo real no admite Photon).
Desactive la opción de habilitar el escalado automático (el modo en tiempo real requiere un tamaño fijo de clúster).
En Rendimiento avanzado, desmarcar Usar instancias de spot (las instancias de spot pueden provocar interrupciones).
Haga clic en Opciones avanzadas para expandir la configuración adicional.
En Modo de acceso, seleccione Dedicado (anteriormente: Usuario único).
En Configuración de Spark, agregue la siguiente configuración:
spark.databricks.streaming.realTimeMode.enabled trueHaga clic en Crear computación.
Paso 2: Creación de 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:
- Haga clic en Nuevo en la barra lateral y, a continuación, haga clic en Cuaderno.
- En el menú desplegable de computación, seleccione la computación que creó en el paso 1.
- Seleccione Python o Scala como lenguaje predeterminado.
Paso 3: 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 la fuente de tasa, una fuente integrada que genera filas a una tasa 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. |
Lo que estás viendo
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:
- timestamp: la hora en que la fila se generó mediante el origen de velocidad.
- value: 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.
Lo que ha aprendido
Ha configurado y ejecutado correctamente la primera consulta de streaming en tiempo real. Ahora sabe cómo:
- Configure el cómputo clásico con los valores necesarios para el modo en tiempo real (clúster dedicado, Photon deshabilitado, escalado automático deshabilitado, configuración de Spark)
- Habilitación del procesamiento en tiempo real mediante el
realTimedesencadenador - Uso de la
displayfunción para desarrollo y pruebas interactivos - Compruebe que la consulta se ejecuta en modo en tiempo real mediante la observación de actualizaciones continuas.
Está listo para construir flujos de procesamiento en tiempo real para entornos de producción con Kafka, Kinesis y otras fuentes compatibles. Para más información sobre Structured Streaming, consulte Conceptos de Structured Streaming.
Pasos siguientes
Ahora que ha ejecutado la primera consulta en tiempo real, explore estos recursos para crear aplicaciones de streaming de producción:
- Ejemplos de modo en tiempo real : ejemplos de código en funcionamiento para orígenes y receptores de Kafka, consultas con estado, agregaciones y receptores personalizados
- Referencia del modo en tiempo real : obtenga información sobre el ajuste de tamaño del clúster, los operadores admitidos, la supervisión y las limitaciones de características.
- Aplicaciones de streaming con gestión de estado - Agregar administración de estado a las consultas en streaming para deduplicación, agregaciones y con operaciones de ventana
-
Administración de estado avanzada : se usa
transformWithStatepara el procesamiento con estado personalizado con tiempo de vida (TTL) y lógica compleja.