Gestione dell'ordine degli eventi con Analisi di flusso di Azure

In un flusso di dati temporale degli eventi, a ogni evento viene assegnato un timestamp. In Analisi di flusso di Azure, i timestamp vengono assegnati a ogni evento in base all'ora di arrivo o al tempo applicazione.

La colonna System.Timestamp presenta il timestamp assegnato all'evento. L'ora di arrivo viene assegnata all'origine di input quando l'evento la raggiunge. L'ora di arrivo corrisponde a EventEnqueuedTime per l'input dell'hub eventi e all'ora dell'ultima modifica del blob per l'input del blob. L'ora di applicazione viene assegnata quando viene generato l'evento e fa parte del payload.

Per elaborare gli eventi in base al tempo applicazione, usare la clausola TIMESTAMP BY nella query di selezione. Se la clausola TIMESTAMP BY è assente, gli eventi vengono elaborati in base all'ora di arrivo. È possibile accedere all'ora di arrivo usando la proprietà EventEnqueuedTime per l'hub eventi e la proprietà BlobLastModified per l'input del blob.

Analisi di flusso di Azure genera l'output in base all'ordine del timestamp e fornisce alcune impostazioni per operare con gli elementi non in ordine.

Gestione degli eventi con Analisi di flusso

I flussi di input che non sono in ordine vengono:

  • Ordinati (e perciò ritardati).
  • Regolati dal sistema, in base al criterio specificato dall'utente.

Analisi di flusso di Azure tollera eventi in ritardo e non in ordine durante l'elaborazione in base al tempo applicazione.

Tolleranza per arrivo in ritardo

  • L'impostazione della tolleranza per arrivo in ritardo è applicabile solo quando l'elaborazione si basa sul tempo applicazione. In caso contrario, viene ignorata.
  • La tolleranza di arrivo in ritardo è la differenza massima tra l'ora di arrivo e il tempo applicazione. Se il tempo applicazione è precedente a (Ora di arrivo - Finestra di arrivo in ritardo), viene impostato su (Ora di arrivo - Finestra di arrivo in ritardo).
  • Quando più partizioni dello stesso flusso di input o più flussi di input vengono combinati insieme, la tolleranza di arrivo in ritardo è la quantità massima di tempo di attesa dei nuovi dati di ogni partizione.

La finestra di arrivo in ritardo è il ritardo massimo tra la generazione dell'evento e la ricezione dello stesso nell'origine di input. La regolazione in base alla tolleranza di arrivo in ritardo viene eseguita per prima e quella degli elementi non in ordine viene eseguita per seconda. La colonna System.Timestamp contiene il timestamp finale assegnato all'evento.

Tolleranza per elementi non in ordine

  • Gli eventi che non arrivano in ordine ma che rientrano nella finestra di tolleranza stabilita vengono riordinati in base al timestamp.
  • Gli eventi che arrivano con un ritardo maggiore della tolleranza vengono eliminati o regolati.
    • Regolati: regolati in modo che sembrino arrivati nel momento di massimo ritardo accettabile.
    • Eliminati: rimossi.

Per riordinare gli eventi ricevuti entro la "finestra di tolleranza degli elementi non in ordine", l'output della query è ritardato in base alla finestra di tolleranza per elementi non in ordine.

Esempio

Tolleranza per arrivo in ritardo = 10 minuti
Tolleranza per elementi non in ordine = 3 minuti
Elaborazione in base al tempo applicazione

Eventi:

Evento 1 Tempo applicazione = 00:00:00, Ora di arrivo = 00:10:01, System.Timestamp = 00:00:01, regolato perché (Ora di arrivo - Tempo applicazione) è maggiore rispetto alla tolleranza per arrivo in ritardo.

Evento 2 Tempo applicazione = 00:00:01, Ora di arrivo = 00:10:01, System.Timestamp = 00:00:01, non regolato perché il tempo applicazione rientra nella finestra di arrivo in ritardo.

Evento 3 Tempo applicazione = 00:10:00, Ora di arrivo = 00:10:02, System.Timestamp = 00:10:00, non regolato perché il tempo applicazione rientra nella finestra di arrivo in ritardo.

Evento 4 Tempo applicazione = 00:09:00, Ora di arrivo = 00:10:03, System.Timestamp = 00:09:00, accettato con il timestamp originale perché il tempo applicazione rientra nella tolleranza per elementi non ordine.

Evento 5 Tempo applicazione = 00:06:00, Ora di arrivo = 00:10:04, System.Timestamp = 00:07:00, regolato perché il tempo applicazione è precedente alla tolleranza per elementi non ordine.

Ottenere aiuto

Per ottenere assistenza aggiuntiva, provare ad accedere al forum di Analisi di flusso di Azure.

Passaggi successivi