Finestra temporale scorrevole (Analisi di flusso di Azure)
Quando si usa una finestra temporale scorrevole, al sistema viene richiesto di considerare logicamente tutte le possibili finestre di una determinata lunghezza. Poiché il numero di tali finestre sarebbe infinito, Analisi di flusso di Azure restituisce invece gli eventi solo per quei punti nel tempo in cui il contenuto della finestra cambia effettivamente, in altre parole quando un evento è entrato o esce dalla finestra.
Il diagramma seguente illustra un flusso con una serie di eventi e come viene eseguito il mapping a finestre scorrevoli di 10 secondi.
Analisi di flusso Analisi di flusso
Sintassi
{SLIDINGWINDOW | SLIDING} ( timeunit, windowsize )
{SLIDINGWINDOW | SLIDING} ( Duration( timeunit, windowsize ) )
Nota
La finestra temporale scorrevole può essere usata nei due modi descritti in precedenza. Per assicurare la coerenza con la finestra di salto, la funzione Duration può essere usata anche con tutti i tipi di finestre per specificarne le dimensioni.
Argomenti
timeunit
Unità di tempo per windowsize. La tabella seguente contiene tutti gli argomenti validi per timeunit.
Timeunit | Abbreviazioni |
---|---|
day | dd, d |
hour | hh |
minute | mi, n |
second | ss, s |
millisecondo | ms |
microsecondo | mcs |
windowsize
Intero lungo che descrive le dimensioni della finestra. Windowsize è statico e non può essere modificato in modo dinamico in fase di esecuzione.
La dimensione massima della finestra in tutti i casi è pari a sette giorni.
Esempio
Questo esempio trova tutti i caselli di pedaggio che hanno servito più di 3 veicoli negli ultimi 5 minuti:
SELECT DateAdd(minute,-5,System.Timestamp()) AS WinStartTime, System.Timestamp() AS WinEndTime, TollId, COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY TollId, SlidingWindow(minute, 5)
HAVING COUNT(*) > 3