Compartir vía


Optimizar consultas de streaming sin estado

En esta página se describen las características de optimización disponibles para las consultas de streaming sin estado en Databricks Runtime 18.0 y versiones posteriores.

Las consultas de streaming estructurado sin estado procesan los datos sin mantener un estado intermedio. Estas consultas no usan operadores con estado, como agregaciones de streaming, dropDuplicateso combinaciones de secuencias de flujo. Entre los ejemplos se incluyen las consultas que usan uniones de flujo-estático, MERGE INTO con tablas Delta y otras operaciones que solo realizan un seguimiento de las filas que se han procesado desde el origen al destino.

Ejecución de consultas adaptativa y reorganización optimizada automáticamente

Azure Databricks admite la ejecución de consultas adaptativas (AQE) y la mezcla optimizada automática (AOS) para consultas en streaming sin estado. Estas características ayudan a optimizar las cargas de trabajo de streaming que usan combinaciones estáticas de flujo, MERGE INTO con tablas Delta y operaciones similares.

Para habilitar AQE para consultas sin estado de streaming, establezca la siguiente configuración en true. Esto está habilitado de forma predeterminada:

spark.sql.adaptive.streaming.stateless.enabled true

Para habilitar AOS para consultas de streaming sin estado, habilite AQE y establezca la siguiente configuración:

spark.sql.shuffle.partitions auto

Cambio de particiones de mezcla durante el reinicio de la consulta

Las consultas de streaming sin estado admiten cambiar el número de particiones de intercambio al reiniciar una consulta. Esto le permite ajustar el paralelismo para dar cabida a volúmenes de entrada variables.

Esta característica es especialmente útil para escenarios históricos de reposición. Por ejemplo, puede procesar el relleno de datos históricos con un mayor grado de paralelismo y luego reducir el paralelismo para los datos de entrada en tiempo real.

Para cambiar el número de particiones aleatorias, establezca la siguiente configuración en el valor deseado y reinicie la consulta:

spark.sql.shuffle.partitions <number>