Consideraciones de producción para Structured Streaming

En este artículo se ofrecen recomendaciones para configurar cargas de trabajo de procesamiento incremental de producción con Structured Streaming en Azure Databricks para cumplir los requisitos de latencia y costo de las aplicaciones en tiempo real o por lotes. Conocer los conceptos clave de Structured Streaming en Azure Databricks puede ayudarle a evitar problemas comunes que aparecen ocurren al escalar verticalmente y la velocidad de los datos verticalmente y al pasar de la fase de desarrollo a la de producción.

El marco Delta Live Tables de Azure Databricks está desarrollado para reducir las complejidades de la administración de la infraestructura de producción para las cargas de trabajo de Structured Streaming. Databricks recomienda utilizar Delta Live Tables para las nuevas canalizaciones de Structured Streaming; consulte ¿Qué es Delta Live Tables?.

Nota:

El escalado automático de proceso tiene limitaciones al reducir verticalmente el tamaño del clúster para cargas de trabajo de Structured Streaming. Databricks recomienda usar tablas Delta Live con escalado automático mejorado para cargas de trabajo de streaming. Consulte ¿Qué es el escalado automático mejorado?.

Uso de cuadernos para cargas de trabajo de Structured Streaming

Para ejecutar las consultas manualmente durante el desarrollo interactivo con cuadernos de Databricks, es necesario que los estos se adjunten a un clúster. Es posible programar los cuadernos de Databricks de forma que lleven a cabo procesos de implementación automatizada y de recuperación automática de errores de consulta mediante el uso de Flujos de trabajo.

Las consultas de Structured Streaming de los cuadernos pueden visualizarse durante el proceso de desarrollo interactivo o durante el de supervisión interactiva de cargas de trabajo de producción. Solo es necesario que se visualicen las consultas de Structured Streaming durante el proceso de producción en el caso de que un humano vaya a encargarse de supervisar la salida del cuaderno de manera regular. Aunque los parámetros trigger y checkpointLocation son opcionales, como procedimiento recomendado, Databricks recomienda especificarlos siempre en producción.

Control del tamaño y la frecuencia del lote para Structured Streaming en Azure Databricks

El uso del motor de procesamiento Structured Streaming en Azure Databricks le ofrecerá opciones mejoradas para ayudar a controlar los costos y la latencia al realizar procesos de streaming con la característica Auto Loader y la capa de almacenamiento Delta Lake.

¿Qué es el streaming con estado?

Las consultas de Structured Streaming con estado requieren que se realicen actualizaciones incrementales de la información de estado intermedio. En cambio, las consultas de Structured Streaming sin estado solo realizan un seguimiento de las filas que se han procesado desde el origen al receptor.

Entre las operaciones con estado se incluyen la agregación de streaming, el streaming con el método dropDuplicates, las combinaciones de flujos de datos y los operadores mapGroupsWithState y flatMapGroupsWithState.

La información de estado intermedio que se necesita para las consultas de Structured Streaming con estado puede provocar problemas inesperados de latencia y de producción si no se configura correctamente.

En Databricks Runtime 13.2 y versiones posteriores, puede habilitar los puntos de control del registro de cambios con RocksDB para reducir la duración del punto de control y la latencia de un extremo a otro para cargas de trabajo de Structured Streaming. Databricks recomienda habilitar los puntos de control del registro de cambios para todas las consultas con estado de Structured Streaming. Consulte Habilitar puntos de control del registro de cambios.