Condividi tramite


Funzioni windowing (Analisi di flusso di Azure)

Nelle applicazioni che elaborano eventi in tempo reale, è comune eseguire alcuni calcoli basati su set (aggregazione) o altre operazioni su subset di eventi che rientrano in un determinato periodo di tempo. Poiché il concetto di tempo è un'esigenza fondamentale per i sistemi di elaborazione di eventi complessi, è importante disporre di un modo semplice per usare il componente tempo della logica di query nel sistema. In Analisi di flusso di Azure questi subset di eventi sono definiti tramite finestre per rappresentano raggruppamenti in base al tempo. Questo articolo descrive le finestre e come vengono definite, identifica i tipi di finestre supportate e spiega come è possibile usare le finestre con vari operatori.

Informazioni sulle finestre

Una finestra contiene dati di eventi in una sequenza temporale e consente di eseguire diverse operazioni in relazione gli eventi all'interno di tale finestra. Ad esempio, è possibile sommare i valori dei campi di payload in una determinata finestra, come illustrato nella figura seguente.

Finestra a cascata per il linguaggio di query di analisi flusso

Ogni operazione finestra restituisce un evento alla fine della finestra. Le finestre di Analisi di flusso di Azure vengono aperte all'ora di inizio della finestra e chiuse all'ora di fine della finestra. Ad esempio, se si dispone di una finestra di 5 minuti dalle 12:00 alle 12:05 tutti gli eventi con timestamp maggiore di 12:00 AM e fino al timestamp 12:05 am inclusive verranno inclusi all'interno di questa finestra. L'output della finestra sarà un singolo evento basato sulla funzione di aggregazione usata che presenta un timestamp uguale all'ora di fine della finestra. Il timestamp dell'evento di output della finestra può essere proiettato nell'istruzione SELECT usando la proprietà System.Timestamp() usando un alias. Ogni finestra si allinea automaticamente all'ora zero. Ad esempio, una finestra a cascata di 5 minuti si allinea a (12:00-12:05] , (12:05-12:10], ...e così via.

Dopo un'operazione di finestra, il timestamp di un evento sarà diverso dall'attributo dell'ora dell'evento originale ,ovvero l'ora di arrivo o la colonna usata con TIMESTAMP BY. È sempre possibile accedere al timestamp aggiornato corrente di un evento con system.timestamp().

Nota

Tutte le finestre devono essere usate in una clausola GROUP BY.

Esistono cinque tipi di finestre:

  1. Finestra a cascata (Analisi di flusso di Azure)

  2. Finestra di salto (Analisi di flusso di Azure)

  3. Finestra temporale scorrevole (Analisi di flusso di Azure)

  4. Finestra sessione (Analisi di flusso di Azure)

  5. Finestra snapshot (Analisi di flusso di Azure)

La dimensione massima della finestra in tutti i casi è pari a sette giorni.

È possibile aggregare in più finestre temporali nella stessa istruzione GROUP BY usando la funzione Windows (Analisi di flusso di Azure).

Vedere anche

Funzioni predefinite (Analisi dei flussi di Azure)
Funzioni di aggregazione (Analisi di flusso di Azure)
Funzioni analitiche (Analisi di flusso di Azure)
Funzioni di matrice (Analisi di flusso)
Funzioni di conversione (Analisi di flusso di Azure)
Funzioni di data e ora (Analisi di flusso di Azure)
Funzioni di record (Analisi di flusso di Azure)