Ventana de salto (Análisis de transmisiones de Azure)

A diferencia de las ventanas de salto de tamaño constante, el modelo de ventanas de salto programado de ventanas superpuestas. Una especificación de ventana de salto consta de tres parámetros: timeunit, el tamaño de ventana (cuánto dura cada ventana) y el salto (por cuánto avanza cada ventana en relación con el anterior). Además, offsetsize se puede usar como un cuarto parámetro opcional. Tenga en cuenta que una ventana de saltos de tamaño constante es simplemente una ventana de saltos cuyo "salto" es igual a su "tamaño".

La siguiente ilustración muestra una transmisión con una serie de eventos. Cada cuadro representa una ventana de saltos y los eventos que se cuentan como parte de esa ventana, y se supone que el "salto" es 5 y el tamaño es "10".

Diagrama de ventana de salto de Stream Analytics

Sintaxis

{HOPPINGWINDOW | HOPPING} ( timeunit  , windowsize , hopsize, [offsetsize] )
{HOPPINGWINDOW | HOPPING} ( Duration( timeunit  , windowsize ) , Hop (timeunit  , windowsize ), [Offset(timeunit  , offsetsize)])  
  

Nota:

La ventana de saltos se puede usar de las dos maneras mencionadas anteriormente. Si el tamaño de ventana y el tamaño de saltos tienen la misma unidad de tiempo, puede usarlos sin las funciones Duration y Hop. La función Duration también se puede usar con otros tipos de ventanas para especificar el tamaño de ventana.

Argumentos

timeunit

Es la unidad de tiempo para el tamaño de ventanas o el salto. En la tabla siguiente se enumeran todos los argumentos timeunit válidos.

Timeunit Abreviaturas
day dd, d
hora hh
minute mi, n
second ss, s
milisegundo ms
microsegundo mcs

windowsize

Un número entero grande que describe el tamaño de la ventana. El tamaño de ventanas es estático y no se puede cambiar dinámicamente en tiempo de ejecución.

El tamaño máximo de la ventana en todos los casos es 7 días.

hopsize

Entero grande que describe el tamaño del salto.

offsetsize

De forma predeterminada, las ventanas de salto son inclusivas al final de la ventana y exclusivas al principio ( por ejemplo, 12:05 p.m. – ventana de 1:05 p.m. incluirá eventos que se produjeron exactamente a las 1:05 p. m., pero no incluirán eventos que se produjeron a las 12:05:00 (este evento formará parte de la ventana de 12:00 p.m. a las 01:00 p. m.).
El parámetro Offset se puede usar para cambiar el comportamiento e incluir los eventos al principio de la ventana y excluir los que se produjeron al final.

Ejemplos

SELECT System.Timestamp() AS WindowEnd, TollId, COUNT(*)  
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, HoppingWindow(Duration(hour, 1), Hop(minute, 5), Offset(millisecond, -1))  
  

Consideración de tiempo

Cada operación de ventana genera un evento al final de la ventana (en el caso de ventanas de salto, esto sucede en cada tamaño de salto). Las ventanas de Azure Stream Analytics se abren en la hora de inicio de la ventana y se cierran en la hora de finalización de la ventana. Por ejemplo, si tiene una ventana de 5 minutos de 12:00 a. m. a 12:05 a. m., todos los eventos con marca de tiempo superior a las 12:00 a. m. y hasta la marca de tiempo 12:05 a. m., ambos incluidos se incluirán en esta ventana. La salida de la ventana será un evento único basado en la función de agregado usada con una marca de tiempo igual que la hora de finalización de la ventana. La marca de tiempo del evento de salida de la ventana se puede proyectar en la instrucción SELECT mediante la propiedad System.Timestamp() mediante un alias.