Docs Menu
Docs Home
/ /

Procesador de flujo de Windows

Las ventanas de procesamiento de flujo Atlas son Etapas de la canalización de agregación que capturan subconjuntos limitados en el tiempo de un flujo de datos, lo que le permite realizar operaciones que requieren entradas finitas en datos de transmisión.

Considere el procesador de flujo de ejemplo descrito Aquí. El La etapa $matchpuede operar directamente en el flujo de datos extraídos por$source, verificando cada documento frente a los criterios de coincidencia a medida que el procesador de flujo lo ingiere.

Por el contrario, la etapa $group y los distintos cálculos estadísticos que contiene no pueden operar sobre datos ilimitados, ya que es imposible determinar valores mínimos, máximos, promedio o medianos sin primero delimitar el conjunto de valores que se van a considerar. Muchos operadores no matemáticos como $push y $top también requieren datos limitados.

Un procesador de flujo proporciona estos límites mediante una ventana. Se abre una ventana y todos los documentos que el procesador de flujo ingiere se acumulan en el estado de esa ventana hasta que transcurre un intervalo de tiempo predefinido y se cierra. La ventana procesa por lotes todos los documentos que captura durante ese intervalo y los pasa a través de su canal interno. Desde este canal, los documentos procesados ​​por lotes son indistinguibles de los datos en reposo.

Atlas Stream Processing proporciona soporte para ventanas de salto,ventanasde caída yventanas de sesión.

Lasventanas de caída se definen completamente por los intervalos de tiempo que capturan. Estos intervalos no se superponen.

Ejemplo

Define una ventana de volteo con un intervalo de 3 segundos. Al iniciar el procesador de flujo:

  • Se abre una ventana durante 3 segundos.

  • La primera ventana captura todos los documentos que la transmisión genera dentro de esos 3 segundos.

  • Después de que transcurran 3 segundos, la ventana se cierra y aplica su lógica de agregación a todos los documentos en esa ventana.

    Si allowedLateness configura, Atlas Stream Processing escribe los mensajes que llegan tarde en la cola de mensajes no entregados después de que se cierra la ventana.

  • Se abre una nueva ventana tan pronto como se cierra la primera y captura documentos de la transmisión durante los siguientes 3 segundos.

Las ventanas giratorias garantizan una captura completa de flujos de datos sin el procesamiento repetido de documentos individuales.

Las ventanas desalto se definen por el intervalo de tiempo que capturan y el intervalo entre cada apertura, denominado salto. Dado que la duración está desvinculada de la frecuencia, se pueden configurar ventanas de salto para que se superpongan o se separen.

Para definir una ventana hopping con solapamiento, establece un hop menor que el intervalo.

Ejemplo

Se define una ventana de salto con un intervalo de 20 segundos y un salto de 5 segundos. Al iniciar el procesador de flujo:

  • Se abre una ventana durante 20 segundos.

  • La primera ventana captura todos los documentos que la transmisión genera dentro de esos 20 segundos.

  • 5 segundos después, se abre otra ventana y captura todos los documentos en los siguientes 20 segundos. Como la primera ventana sigue abierta, ambas ventanas capturan todos los documentos que la secuencia genera durante los siguientes 15 segundos.

  • 20 segundos después de que se abre la primera ventana, se cierra y aplica su lógica de agregación a todos los documentos en esa ventana.

  • 5 segundos después, la segunda ventana se cierra y aplica la lógica de agregación a todos los documentos en esa ventana, incluidos aquellos que ya estaban sujetos a la lógica de agregación en la primera ventana.

Si allowedLateness configura, Atlas Stream Processing escribe los mensajes que llegan tarde en la cola de mensajes no entregados después de que se cierra la ventana.

Para definir una ventana de salto con espaciado, configure un salto mayor que el intervalo.

Ejemplo

Se define una ventana de salto con un intervalo de 3 segundos y un salto de 5 segundos. Al iniciar un procesador de flujo:

  • Se abre una ventana durante 3 segundos.

  • La primera ventana captura todos los documentos durante los próximos 3 segundos.

  • Después de que transcurran 3 segundos, la ventana se cierra y aplica su lógica de agregación a todos los documentos en esa ventana.

  • La siguiente ventana se abre después de que transcurran otros 2 segundos.

  • Atlas Stream Processing no procesa ningún documento que la transmisión genere durante esos 2 segundos.

Lasventanas de sesión permiten ejecutar una canalización en cada sesión de actividad en un flujo de entrada. Dos documentos están en la misma sesión si comparten la misma partición y la diferencia entre sus marcas de tiempo es menor que la diferencia entre sesiones.

Cuando se cierra una ventana, sus resultados se liberan a la siguiente etapa.

Ejemplo

Define una partición de $userId, un intervalo de 5 minutos y un retraso permitido de 5 segundos. Al iniciar el procesador de flujo:

  • Se abre una ventana cuando el primer documento llega $sessionWindow al.

  • Cualquier documento que llegue a la etapa que contenga el mismo valor userId (incluida la ausencia de este campo) dentro de los cinco minutos y cinco segundos posteriores a la llegada del documento coincidente más reciente al procesador se agrega a la misma ventana de sesión.

  • La ventana permanece abierta hasta que no se le agreguen documentos durante el intervalo de cinco minutos más el retraso permitido de cinco segundos.

Volver

Arquitectura

En esta página