Janela de salto (Azure Stream Analytics)

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

A ilustração a seguir 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, supondo que o salto é 5 e o tamanho é 10.

Diagrama da janela de salto do

Syntax

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

Observação

A janela de salto pode ser usada nas duas maneiras acima. Se o windowsize e o hopsize tem o mesmo timeunit, você pode usá-lo sem as funções Salto e Duração. A função Duração também pode ser usada 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 a seguir lista todos os argumentos timeunit válidos.

Timeunit Abreviações
dia dd, d
hour hh
minute mi, n
second ss, s
milissegundo ms
microssegundo mcs

Windowsize

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

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

hopsize

Um inteiro grande que descreve o tamanho do Salto.

offsetsize

Por padrão, as janelas de salto são inclusivas no final da janela e exclusivas no início – por exemplo, 12:05 pm – 13:05 pm janela incluirá eventos que aconteceram exatamente às 13:05, mas não incluirá eventos que ocorreram às 12:05:05 (esses eventos farão parte da janela das 12:00 às 23:00).
O parâmetro Offset pode ser usado 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 gera evento no final da janela (no caso de janelas de salto, isso acontece em cada tamanho de salto). As janelas do Azure Stream Analytics são abertas na hora de início da janela e fechadas na hora de término da janela. Por exemplo, se você tiver uma janela de 5 minutos das 00h às 00h05, todos os eventos com carimbo de data/hora maior que 12h e até o carimbo de data/hora 12:05 inclusive serão incluídos nesta janela. A saída da janela será um único evento com base na função de agregação usada com um carimbo de data/hora igual à hora de término da janela. O carimbo de data/hora do evento de saída da janela pode ser projetado na instrução SELECT usando a propriedade System.Timestamp() usando um alias.