Gestione dell'ordine degli eventi con Analisi di flusso di AzureAzure Stream Analytics event order handling

In un flusso di dati temporale degli eventi, a ogni evento viene assegnato un timestamp.In a temporal data stream of events, each event is assigned a timestamp. Analisi di flusso di Azure assegna timestamp a ogni evento usando l'ora di arrivo o il tempo applicazione.Azure Stream Analytics assigns timestamp to each event using either Arrival time or Application Time. La colonna System.Timestamp include il timestamp assegnato all'evento.The "System.Timestamp" column has the timestamp assigned to the event. L'ora di arrivo viene assegnata nell'origine di input quando l'evento raggiunge l'origine.Arrival time is assigned at the input source when the event reaches the source. L'ora di arrivo corrisponde a EventEnqueuedTime per l'input di Hub eventi e all'ora dell'ultima modifica del BLOB per l'input del BLOB.Arrival time is EventEnqueuedTime for Event Hub input and blob last modified time for blob input. Il tempo applicazione viene assegnato quando l'evento viene generato e fa parte del payload.Application Time is assigned when the event is generated and it is part of the payload. Per elaborare gli eventi in base al tempo applicazione, usare la clausola "Timestamp by" nella query di selezione.To process events by application time, use the "Timestamp by" clause in the select query. Se la clausola "Timestamp by" è assente, gli eventi vengono elaborati in base all'ora di arrivo.If the "Timestamp by" clause is absent, events are processed by Arrival time. È possibile accedere all'ora di arrivo usando la proprietà EventEnqueuedTime per l'hub eventi e la proprietà BlobLastModified per l'input del BLOB.Arrival time can be accessed using EventEnqueuedTime property for event hub and using BlobLastModified property for blob input. Analisi di flusso di Azure genera l'output in base all'ordine del timestamp e fornisce alcune impostazioni per gestire i dati non in ordine.Azure Stream Analytics produces output in the timestamp order and provides few settings to deal with out of order data.

Gestione degli eventi con Analisi di flusso

I flussi di input che non sono in ordine vengono:Input streams that are not in order are either:

  • Ordinati (e perciò ritardati).Sorted (and therefore delayed).
  • Regolati dal sistema, in base al criterio specificato dall'utente.Adjusted by the system, according to the user-specified policy.

Analisi di flusso di Azure tollera eventi in ritardo e non in ordine durante l'elaborazione in base al tempo applicazione.Stream Analytics tolerates late and out of order events when processing by application time.

Tolleranza per arrivo in ritardoLate Arrival tolerance

  • Questa impostazione è applicabile solo quando l'elaborazione si basa sul tempo applicazione. In caso contrario, viene ignorata.This setting is applicable only when processing by Application time, otherwise it is ignored.
  • Si tratta della differenza massima tra l'ora di arrivo e il tempo applicazione.This is the maximum difference between Arrival time and Application time. 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)If Application time is before (Arrival Time - Late Arrival Window), it is set to (Arrival Time - Late Arrival Window)
  • 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.When multiple partitions from the same input stream or multiple input streams are combined together, late arrival tolerance is the maximum amount of time every partition waits for new data.

In breve, la finestra di arrivo in ritardo è il ritardo massimo tra la generazione dell'evento e la ricezione dell'evento nell'origine di input.Briefly, late arrival window is the maximum delay between event generation and receiving of the event at input source. La modifica in base alla tolleranza per arrivo in ritardo viene eseguita per prima, seguita da quella degli elementi non in ordine.Adjustment based on Late arrival tolerance is done first and out of order is done next. La colonna System.Timestamp include il timestamp finale assegnato all'evento.The System.Timestamp column will have the final timestamp assigned to the event.

Tolleranza per elementi non in ordineOut of order tolerance

  • Gli eventi che non arrivano in ordine ma che rientrano nella finestra di tolleranza degli elementi non in ordine stabilita vengono riordinati in base al timestamp.Events that arrive out of order but within the set "out of order tolerance window" are reordered by timestamp.
  • Gli eventi che arrivano con un ritardo maggiore della tolleranza vengono eliminati o modificati.Events that arrive later than tolerance are either dropped or adjusted.
    • Regolati: regolati in modo che sembrino arrivati nel momento di massimo ritardo accettabile.Adjusted: Adjusted to appear to have arrived at the latest acceptable time.
    • Eliminati: rimossi.Dropped: Discarded.

Per riordinare gli eventi ricevuti entro la "finestra di tolleranza per elementi non in ordine", l'output della query viene ritardato in base alla finestra di tolleranza per elementi non in ordine.To reorder events received within "out of order tolerance window", output of the query is delayed by out of order tolerance window.

EsempioExample

Tolleranza per arrivo in ritardo = 10 minutiLate Arrival tolerance = 10 minutes
Tolleranza per elementi non in ordine = 3 minutiOut of order tolerance = 3 minutes
Elaborazione in base al tempo applicazioneProcessing by application time

Eventi:Events:

Evento 1 Tempo applicazione = 00:00:00, Ora di arrivo = 00:10:01, System.Timestamp = 00:00:01, modificato perché (Ora di arrivo - Tempo applicazione) è maggiore della tolleranza per arrivo in ritardo.Event 1 Application Time = 00:00:00, Arrival Time = 00:10:01, System.Timestamp = 00:00:01, adjusted because (Arrival Time - Application Time) is more than late arrival tolerance.

Evento 2 Tempo applicazione = 00:00:01, Ora di arrivo = 00:10:01, System.Timestamp = 00:00:01, non modificato perché il tempo applicazione rientra nella finestra di arrivo in ritardo.Event 2 Application Time = 00:00:01, Arrival Time = 00:10:01, System.Timestamp = 00:00:01, not adjusted because application time is within the late arrival window.

Evento 3 Tempo applicazione = 00:10:00, Ora di arrivo = 00:10:02, System.Timestamp = 00:10:00, non modificato perché il tempo applicazione rientra nella finestra di arrivo in ritardo.Event 3 Application Time = 00:10:00, Arrival Time = 00:10:02, System.Timestamp = 00:10:00, not adjusted because appliation time is within the late arrival window.

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.Event 4 Application Time = 00:09:00, Arrival Time = 00:10:03, System.Timestamp = 00:09:00, accepted with original timestamp as application time is within the out of order tolerance.

Evento 5 Tempo applicazione = 00:06:00, Ora di arrivo = 00:10:04, System.Timestamp = 00:07:00, modificato perché il tempo applicazione è precedente alla tolleranza per elementi non ordine.Event 5 Application Time = 00:06:00, Arrival Time = 00:10:04, System.Timestamp = 00:07:00, adjusted because application time is older than the out of order tolerance.

Ottenere aiutoGet help

Per ottenere assistenza aggiuntiva, provare ad accedere al forum di Analisi di flusso di Azure.For additional assistance, try our Azure Stream Analytics forum.

Passaggi successiviNext steps