Janela em cascata (Azure Stream Analytics)
As janelas em cascata são uma série de intervalos de tempo de tamanho fixo, não sobrepostos e contíguos. O diagrama a seguir ilustra um fluxo com uma série de eventos e como eles são mapeados em janelas em cascata de 10 segundos.
Syntax
{TUMBLINGWINDOW | TUMBLING} ( timeunit , windowsize, [offsetsize] )
{TUMBLINGWINDOW | TUMBLING} ( Duration( timeunit , windowsize ), [Offset(timeunit , offsetsize)] )
Observação
A janela em cascata pode ser usada nas duas maneiras acima. Para permitir a consistência com a janela de salto, a função Duração também pode ser usada com todos os tipos de janelas para especificar o tamanho da janela. A duração da janela deve ser uma constante float positiva.
Argumentos
timeunit
É a unidade de tempo para o windowsize. 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 é 7 dias.
offsetsize
Por padrão, janelas em cascata são inclusivas no final da janela e exclusivas no início – por exemplo, 12:00 pm – janela 13:00 incluirá eventos que aconteceram exatamente às 13:00, mas não incluirão eventos que aconteceram às 12:00 PM (esses eventos farão parte da janela das 11:00 às 12:00).
O parâmetro Offset pode ser usado para alterar esse 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, TumblingWindow(Duration(hour, 1), Offset(millisecond, -1))
SELECT 'reset' AS command
INTO
alert
FROM
temperature TIMESTAMP BY timeCreated
GROUP BY TumblingWindow(second,15)
HAVING Avg(machine.temperature) > 25
Considerações sobre tempo
Cada operação da janela gera um evento no final da janela. 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.