Janela de Salto (Azure Stream Analytics)

Ao contrário das janelas em cascata, o modelo hopping do Windows agendou janelas sobrepostas. Uma especificação de janela de salto consiste em três parâmetros: timeunit, windowsize (quanto tempo dura cada janela) e o hopsize (por quanto cada janela avança em relação à anterior). Além disso, o deslocamento pode ser utilizado como um quarto parâmetro opcional. Tenha em atenção que uma janela em cascata é simplesmente uma janela de salto cujo "salto" é igual ao seu "tamanho".

A ilustração seguinte mostra um fluxo com uma série de eventos. Cada caixa representa uma janela de salto e os eventos que são contados como parte dessa janela, assumindo que o "salto" é 5 e que o "tamanho" é 10.

Diagrama de janela de salto do Stream Analytics do

Syntax

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

Nota

A Janela de Salto pode ser utilizada das duas formas acima. Se o windowsize e o hopsizem o mesmo número de tempo, pode utilizá-lo sem as funções Duration (Duração) e Hop (Salto). A função Duration também pode ser utilizada com outros tipos de janelas para especificar o tamanho da janela.

Argumentos

timeunit

É a unidade de tempo para o windowsize ou o hopsize. A tabela seguinte lista todos os argumentos timeunit válidos.

Intervalo de tempo Abreviaturas
day dd, d
hour hh
minute mi, n
second ss, s
milissegundos ms
microssegundos mcs

windowsize

Um grande número inteiro que descreve o tamanho da janela. O windowsize é estático e não pode ser alterado dinamicamente no runtime.

O tamanho máximo da janela em todos os casos é de 7 dias.

hopsize

Um grande número inteiro que descreve o tamanho do Salto.

offsetsize

Por predefinição, as janelas de salto são inclusivas no final da janela e exclusivas no início ( por exemplo, 12:05 – janela das 13:05) incluirão eventos que ocorreram exatamente às 13:05, mas não incluirão eventos ocorridos às 12:05 (estes eventos farão parte das 12:00 – janela das 13:00).
O parâmetro Offset pode ser utilizado para alterar o comportamento e incluir os eventos no início da janela e excluir os que ocorreram no final.

Exemplos

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))  
  

Consideração de tempo

Cada operação de janela produz eventos no final da janela (no caso de janelas de salto, isto acontece em todos os tamanhos do salto). As janelas do Azure Stream Analytics são abertas na hora de início da janela e fechadas na hora de fim da janela. Por exemplo, se tiver um período de 5 minutos das 00:00 às 00:05, todos os eventos com carimbo de data/hora superior a 00:00 e até ao carimbo de data/hora 00:05 inclusive serão incluídos nesta janela. O resultado da janela será um único evento com base na função de agregação utilizada com um carimbo de data/hora igual à hora de fim da janela. O carimbo de data/hora do evento de saída da janela pode ser projetado na instrução SELECT com a propriedade System.Timestamp() com um alias.