Introduzione alle funzioni delle finestre di Analisi di flussoIntroduction to Stream Analytics windowing functions

Negli scenari di flusso tempo eseguire operazioni solo sui dati contenuti in finestre temporali è un modello comune.In time-streaming scenarios, performing operations on the data contained in temporal windows is a common pattern. Analisi di flusso offre supporto nativo per le funzioni delle finestre, consentendo agli sviluppatori di creare processi di elaborazione dei flussi complessi con il minimo sforzo.Stream Analytics has native support for windowing functions, enabling developers to author complex stream processing jobs with minimal effort.

Esistono quattro finestre temporali tra cui scegliere: a cascata, salto, temporale scorrevole e sessione.There are four kinds of temporal windows to choose from: Tumbling, Hopping, Sliding, and Session windows. Usare le funzioni delle finestre nella clausola GROUP BY della sintassi di query nei processi di Flusso Analitica.You use the window functions in the GROUP BY clause of the query syntax in your Stream Analytics jobs.

Tutte le operazioni delle finestre restituiscono i risultati alla fine della finestra.All the windowing operations output results at the end of the window. L'output della finestra sarà un singolo evento basato sulla funzione di aggregazione usata.The output of the window will be single event based on the aggregate function used. All'evento di output sarà associato il timestamp di fine della finestra e tutte le funzioni finestra sono definite con una lunghezza fissa.The output event will have the time stamp of the end of the window and all window functions are defined with a fixed length.

Concetti delle funzioni finestra di Analisi di flusso

Finestra a cascataTumbling window

Le funzioni finestra a cascata vengono usate per segmentare un flusso di dati in segmenti temporali distinti e per eseguire una funzione su tali segmenti, come nell'esempio seguente.Tumbling window functions are used to segment a data stream into distinct time segments and perform a function against them, such as the example below. I principali elementi distintivi di una finestra a cascata sono la ripetitività e la non sovrapposizione, oltre al fatto che un evento non può appartenere a più di una finestra a cascata.The key differentiators of a Tumbling window are that they repeat, do not overlap, and an event cannot belong to more than one tumbling window.

Finestra a cascata di Analisi di flusso

Finestra di saltoHopping window

Le funzioni finestra di salto consentono di avanzare nel tempo di un periodo fisso.Hopping window functions hop forward in time by a fixed period. Può essere utile pensare a queste finestre come finestre a cascata che possono essere sovrapposte, quindi gli eventi possono appartenere a più di un set di risultati della finestra di salto.It may be easy to think of them as Tumbling windows that can overlap, so events can belong to more than one Hopping window result set. Per creare una finestra di salto uguale a una finestra a cascata, specificare dimensioni del salto uguali alle dimensioni della finestra.To make a Hopping window the same as a Tumbling window, specify the hop size to be the same as the window size.

Finestra di salto di Analisi di flusso

Finestra temporale scorrevoleSliding window

Le funzioni finestra temporale scorrevole, diversamente dalle finestre a cascata o di salto, generano un output solo quando si verifica un evento.Sliding window functions, unlike Tumbling or Hopping windows, produce an output only when an event occurs. Ogni finestra avrà almeno un evento e la finestra si sposta continuamente in avanti di un € (epsilon).Every window will have at least one event and the window continuously moves forward by an € (epsilon). Come le finestre di salto, gli eventi possono appartenere a più di una finestra temporale scorrevole.Like hopping windows, events can belong to more than one sliding window.

Finestra temporale di Analisi di flusso

Finestra della sessione (anteprima)Session window (Preview)

Le funzioni finestra della sessione raggruppano gli eventi che arrivano a intervalli di tempo simili, filtrando i periodi di tempo nei quali non sono presenti dati.Session window functions group events that arrive at similar times, filtering out periods of time where there is no data. Dispone di tre parametri principali: timeout, durata massima e chiave di partizionamento (facoltativo).It has three main parameters: timeout, maximum duration, and partitioning key (optional).

Finestra della sessione di Analisi di flusso

Una finestra della sessione inizia quando si verifica il primo evento.A session window begins when the first event occurs. Se si verifica un altro evento entro il timeout specificato dall'ultimo evento acquisito, la finestra si estende per includere il nuovo evento.If another event occurs within the specified timeout from the last ingested event, then the window extends to include the new event. In caso contrario, se non si verificano eventi entro il timeout, la finestra viene chiusa al timeout.Otherwise if no events occur within the timeout, then the window is closed at the timeout.

Se continuano a verificarsi eventi entro il timeout specificato, la finestra della sessione continuerà a estendersi fino al raggiungimento della durata massima.If events keep occurring within the specified timeout, the session window will keep extending until maximum duration is reached. Gli intervalli di controllo della durata massima sono impostati in modo da avere lo stesso valore della durata massima specificata.The maximum duration checking intervals are set to be the same size as the specified max duration. Ad esempio, se la durata massima è 10, i controlli sulla finestra per verificare il superamento della durata massima verranno eseguiti a intervalli di t = 0, 10, 20, 30 e così via.For example, if the max duration is 10, then the checks on if the window exceed maximum duration will happen at t = 0, 10, 20, 30, etc.

Quando viene fornita una chiave di partizione, gli eventi vengono raggruppati tramite la chiave e la finestra della sessione viene applicata indipendentemente a ogni gruppo.When a partition key is provided, the events are grouped together by the key and session window is applied to each group independently. Questo partizionamento è utile nei casi in cui sono necessarie finestre sessione diverse per utenti o dispositivi diversi.This partitioning is useful for cases where you need different session windows for different users or devices.

Passaggi successiviNext steps