Förstå tids hantering i Azure Stream AnalyticsUnderstand time handling in Azure Stream Analytics

I den här artikeln får du lära dig hur du kan göra design val för att lösa praktiska tids hanterings problem i Azure Stream Analytics jobb.In this article, you learn how to make design choices to solve practical time handling problems in Azure Stream Analytics jobs. Design beslut för tids hantering är nära relaterade till händelse ordnings faktorer.Time handling design decisions are closely related to event ordering factors.

Koncept för bakgrunds tidBackground time concepts

För att skapa en bättre bild av diskussionen, ska vi definiera vissa bakgrunds begrepp:To better frame the discussion, let's define some background concepts:

  • Händelse tid: den tidpunkt då den ursprungliga händelsen inträffade.Event time: The time when the original event happened. Till exempel när en rörlig bil på motorväg närmar sig en väg på väg.For example, when a moving car on the highway approaches a toll booth.

  • Bearbetnings tid: den tidpunkt då händelsen når bearbetnings systemet och observeras.Processing time: The time when the event reaches the processing system and is observed. Till exempel när en väg givare ser bilen och dator systemet tar en stund att bearbeta data.For example, when a toll booth sensor sees the car and the computer system takes a few moments to process the data.

  • Vattenstämpel: en händelse tids markör som visar upp till vilka punkt händelser som har inträffat för strömnings processorn.Watermark: An event time marker that indicates up to what point events have been ingressed to the streaming processor. Vattenstämplar gör att systemet visar klart förloppet för att mata in händelser.Watermarks let the system indicate clear progress on ingesting the events. När data strömmar är av typen stoppa stoppas inkommande händelse data aldrig, så vattenstämplar anger förloppet till en viss punkt i data strömmen.By the nature of streams, the incoming event data never stops, so watermarks indicate the progress to a certain point in the stream.

    Begreppet vattenstämpel är viktigt.The watermark concept is important. Med vattenstämplar kan Stream Analytics fastställa när systemet kan producera fullständiga, korrekta och upprepnings bara resultat som inte behöver dras tillbaka.Watermarks allow Stream Analytics to determine when the system can produce complete, correct, and repeatable results that don’t need to be retracted. Bearbetningen kan göras på ett förutsägbart och repeterbart sätt.The processing can be done in a predictable and repeatable way. Om till exempel en omräkning måste göras för vissa fel hanterings villkor är vattenstämplar säkra start-och slut punkter.For example, if a recount needs to be done for some error handling condition, watermarks are safe starting and ending points.

Ytterligare resurser för det här ämnet finns i Tyler Akidaus blogg inlägg strömma 101 och strömmande 102.For additional resources on this subject, see Tyler Akidau's blog posts Streaming 101 and Streaming 102.

Välj den bästa start tidenChoose the best starting time

Stream Analytics ger användare två valmöjligheter för att välja händelse tid: tid för införsel och program tid.Stream Analytics gives users two choices for picking event time: arrival time and application time.

Införsel tidArrival time

Införsel tiden tilldelas till Indatakällan när händelsen når källan.Arrival time is assigned at the input source when the event reaches the source. Du kan komma åt ankomst tiden genom att använda egenskapen EventEnqueuedUtcTime för Event Hubs Indatatyp, egenskapen IoTHub. EnqueuedTime för IoT Hub indatamängd och egenskapen BlobProperties. LastModified för BLOB-Indatatyp.You can access arrival time by using the EventEnqueuedUtcTime property for Event Hubs input, the IoTHub.EnqueuedTime property for IoT Hub input, and the BlobProperties.LastModified property for blob input.

Införsel tiden används som standard och används bäst för data Arkiv scenarier där temporal logik inte behövs.Arrival time is used by default and is best used for data archiving scenarios where temporal logic isn't necessary.

Tillämpnings tid (även namngiven händelse tid)Application time (also named Event Time)

Programmets tid tilldelas när händelsen genereras och är en del av händelse nytto lasten.Application time is assigned when the event is generated, and it's part of the event payload. Om du vill bearbeta händelser efter program tid använder du timestamp by -satsen i Select-frågan.To process events by application time, use the Timestamp by clause in the SELECT query. Om timestamp by saknas bearbetas händelser efter införsel tid.If Timestamp by is absent, events are processed by arrival time.

Det är viktigt att använda en tidstämpel i nytto lasten när Temporal Logic är involverad för att beakta fördröjningar i käll systemet eller i nätverket.It's important to use a timestamp in the payload when temporal logic is involved to account for delays in the source system or in the network. Tiden som tilldelats en händelse är tillgänglig i systemet. Tidsstämpel.The time assigned to an event is available in SYSTEM.TIMESTAMP.

Hur lång tid i Azure Stream AnalyticsHow time progresses in Azure Stream Analytics

När du använder program tid baseras tiden på inkommande händelser.When you use application time, the time progression is based on the incoming events. Det är svårt för data ström bearbetnings systemet att veta om det inte finns några händelser eller om händelserna är fördröjda.It's difficult for the stream processing system to know if there are no events, or if events are delayed. Därför genererar Azure Stream Analytics heuristiska vattenstämplar på följande sätt för varje partition:For this reason, Azure Stream Analytics generates heuristic watermarks in the following ways for each input partition:

  • När det finns inkommande händelser är vattenstämpeln den största händelse tiden Stream Analytics har visats hittills, vilket innebär att storleken på tolerans perioden är för lång.When there's any incoming event, the watermark is the largest event time Stream Analytics has seen so far minus the out-of-order tolerance window size.

  • När det inte finns någon inkommande händelse är vattenstämpeln den aktuella uppskattade införsel tiden minus fönstret sent införsel tolerans.When there's no incoming event, the watermark is the current estimated arrival time minus the late arrival tolerance window. Den uppskattade införsel tiden är den tid som har förflutit från den senaste gången en indatamängds händelse visades och den inkommande händelsens ankomst tid.The estimated arrival time is the time that has elapsed from the last time an input event was seen plus that input event's arrival time.

    Införsel tiden kan bara uppskattas eftersom den faktiska tiden för införsel skapas i händelse koordinatorn för indata, t. ex. Event Hubs, eller på den Azure Stream Analytics virtuella datorn som bearbetar händelserna.The arrival time can only be estimated because the real arrival time is generated on the input event broker, such as Event Hubs, nor on the Azure Stream Analytics VM processing the events.

Designen har två andra andra syfte än att skapa vattenstämplar:The design serves two additional purposes other than generating watermarks:

  1. Systemet genererar resultat i tid med eller utan inkommande händelser.The system generates results in a timely fashion with or without incoming events.

    Du styr hur lång tid du vill se resultatet av utdata.You have control over how timely you want to see the output results. I Azure Portal, på sidan händelse ordning i Stream Analytics jobb, kan du konfigurera inställningen för slut föringen av händelser .In the Azure portal, on the Event ordering page of your Stream Analytics job, you can configure the Out of order events setting. När du konfigurerar den inställningen bör du överväga att använda tids linjen med tolerans för händelser som inte är i följd i händelse strömmen.When you configure that setting, consider the trade-off of timeliness with tolerance of out-of-order events in the event stream.

    Fönstret sent införsel tolerans är nödvändigt för att fortsätta att skapa vattenstämplar, även om det inte finns några inkommande händelser.The late arrival tolerance window is necessary to keep generating watermarks, even in the absence of incoming events. Ibland kan det finnas en period där inga inkommande händelser kommer, till exempel när en händelse data ström är sparse.At times, there may be a period where no incoming events come in, like when an event input stream is sparse. Det här problemet är exacerbated genom att använda flera partitioner i händelse koordinatorn för ingångs händelser.That problem is exacerbated by the use of multiple partitions in the input event broker.

    Strömmande data behandlings system utan en period för sent införsel, kan bli lidande för fördröjda utdata när indata är glesa och flera partitioner används.Streaming data processing systems without a late arrival tolerance window may suffer from delayed outputs when inputs are sparse and multiple partitions are used.

  2. System beteendet måste vara repeterbart.The system behavior needs to be repeatable. Repeterbarhet är en viktig egenskap i ett system för strömning av data behandling.Repeatability is an important property of a streaming data processing system.

    Vattenstämpeln härleds från ankomst tiden och program tiden.The watermark is derived from the arrival time and application time. Båda är bestående av händelse koordinatorn och kan därför upprepas.Both are persisted in the event broker, and thus repeatable. När en införsel tid beräknas i frånvaro av händelser, Azure Stream Analytics journaler som den uppskattade tiden för repeterbarhet under repetitionen för haveri återställning.When an arrival time is estimated in the absence of events, Azure Stream Analytics journals the estimated arrival time for repeatability during replay for failure recovery.

När du väljer att använda tid för införsel som tidpunkt för händelsen, behöver du inte konfigurera frånvaro tolerans och sent införsel tolerans.When you choose to use arrival time as the event time, there you don't need to configure the out-of-order tolerance and late arrival tolerance. Eftersom införsel tiden är garanterad att öka i händelse koordinatorn för inloggen, Azure Stream Analytics bara att ignorera konfigurationerna.Since arrival time is guaranteed to be increasing in the input event broker, Azure Stream Analytics simply disregards the configurations.

Sena inkommande händelserLate arriving events

Efter definition av fönstret sent införsel tolerans, för varje inkommande händelse, Azure Stream Analytics jämför händelse tiden med införsel tiden.By definition of late arrival tolerance window, for each incoming event, Azure Stream Analytics compares the event time with the arrival time. Om händelse tiden ligger utanför tolerans fönstret kan du konfigurera systemet för att släppa händelsen eller justera händelsens tid så att den ligger inom toleransen.If the event time is outside of the tolerance window, you can configure the system to drop the event or adjust the event's time to be within the tolerance.

När vattenstämplarna har genererats kan tjänsten potentiellt ta emot händelser med en händelse tid som är lägre än vattenstämpeln.Once watermarks are generated, the service can potentially receive events with an event time lower than the watermark. Du kan konfigurera tjänsten att antingen släppa dessa händelser eller Justera händelsens tid till värdet för vatten märket.You can configure the service to either drop those events, or adjust the event's time to the watermark value.

Som en del av justeringen anges händelsens system. timestamp till det nya värdet, men fältet för händelse tid ändras inte.As a part of the adjustment, the event's System.Timestamp is set to the new value, but the event time field itself is not changed. Den här justeringen är den enda situationen där en händelses system. timestamp kan skilja sig från värdet i fältet händelse tid och kan orsaka att oväntade resultat genereras.This adjustment is the only situation where an event's System.Timestamp can be different from the value in the event time field and may cause unexpected results to be generated.

Hantera tids variation med under strömmarHandle time variation with substreams

Den mekanism för generering av heuristisk vattenstämpel som beskrivs fungerar bra i de flesta fall där tiden oftast är synkroniserad mellan olika händelse avsändare.The heuristic watermark generation mechanism described works well in most of cases where time is mostly synchronized between the various event senders. I real tid, särskilt i många IoT-scenarier, har systemet emellertid lite kontroll över klockan på händelse avsändarna.However, in real life, especially in many IoT scenarios, the system has little control over the clock on the event senders. Händelse avsändare kan vara alla typer av enheter i fältet, t. ex. olika versioner av maskin vara och program vara.The event senders could be all sorts of devices in the field, perhaps on different versions of hardware and software.

I stället för att använda en vattenstämpel som är global till alla händelser i en indataparameter, Stream Analytics har en annan mekanism som kallas under strömmar.Instead of using a watermark that is global to all events in an input partition, Stream Analytics has another mechanism called substreams. Du kan använda under strömmar i jobbet genom att skriva en jobb fråga som använder timestamp by -satsen och nyckelordet över.You can utilize substreams in your job by writing a job query that uses the TIMESTAMP BY clause and the keyword OVER. Om du vill ange under data strömmen anger du ett nyckel kolumn namn efter över -nyckelordet, t. ex. ett deviceid , så att systemet använder tids principer för den kolumnen.To designate the substream, provide a key column name after the OVER keyword, such as a deviceid, so that system applies time policies by that column. Varje under data ström får sin egen oberoende vattenstämpel.Each substream gets its own independent watermark. Den här mekanismen är användbar för att tillåta generering av utdata i rätt tid vid hantering av stora klockor eller nätverks fördröjningar mellan händelse avsändare.This mechanism is useful to allow timely output generation, when dealing with large clock skews or network delays among event senders.

Under strömmar är en unik lösning som tillhandahålls av Azure Stream Analytics och som inte erbjuds av andra data behandlings system för strömning.Substreams are a unique solution provided by Azure Stream Analytics, and are not offered by other streaming data processing systems.

När du använder under strömmar Stream Analytics använder fönstret sent införsel tolerans för inkommande händelser.When you use substreams, Stream Analytics applies the late arrival tolerance window to incoming events. Den sena införsel toleransen bestämmer den maximala mängd med vilken olika del strömmar kan skilja sig från varandra.The late arrival tolerance decides the maximum amount by which different substreams can be apart from each other. Om till exempel enhet 1 är vid tidsstämpel 1 och enhet 2 är vid tidsstämpel 2, är den mest sena införsel toleransen tidsstämpel 2 minus tidsstämpel 1.For example, if Device 1 is at Timestamp 1, and Device 2 is at Timestamp 2, the at most late arrival tolerance is Timestamp 2 minus Timestamp 1. Standardvärdet är 5 sekunder och är troligen för litet för enheter med Divergent-tidsstämpel.The default setting is 5 seconds and is likely too small for devices with divergent timestamps. Vi rekommenderar att du börjar med 5 minuter och gör justeringar enligt mönster för enhets klock skevning.We recommend that you start with 5 minutes and make adjustments according to their device clock skew pattern.

Tidig inkommande händelserEarly arriving events

Du kanske har lagt märke till ett annat koncept som kallas tidig ankomst fönstret som ser ut som motsatsen till fönstret för sent införsel tolerans.You may have noticed another concept called early arrival window that looks like the opposite of late arrival tolerance window. Det här fönstret är fast i 5 minuter och har ett annat syfte från fönstret sent införsel tolerans.This window is fixed at 5 minutes and serves a different purpose from the late arrival tolerance window.

Eftersom Azure Stream Analytics garanterar fullständiga resultat kan du bara ange jobbets start tid som den första utgångs tiden för jobbet, inte indata-tiden.Because Azure Stream Analytics guarantees complete results, you can only specify job start time as the first output time of the job, not the input time. Jobbets start tid måste anges så att hela fönstret bearbetas, inte bara från mitten av fönstret.The job start time is required so that the complete window is processed, not just from the middle of the window.

Stream Analytics härleder start tiden från fråge specifikationen.Stream Analytics derives the start time from the query specification. Men eftersom indatamängden för inloggning endast indexeras efter införsel tid, måste systemet översätta start tid till ankomst tid.However, because the input event broker is only indexed by arrival time, the system has to translate the starting event time to arrival time. Systemet kan starta bearbetning av händelser från den punkten i händelse koordinatorn för indata.The system can start processing events from that point in the input event broker. Med den tidigaste ingångs perioden kan översättningen vara enkel: start tid för händelsen minus 5 minuters tidigt ingångs period.With the early arriving window limit, the translation is straightforward: starting event time minus the 5-minute early arriving window. Den här beräkningen innebär också att systemet släpper alla händelser som visas som en händelse tid 5 minuter tidigare än införsel tiden.This calculation also means that the system drops all events that are seen as having an event time 5 minutes earlier than the arrival time. Måttet tidig ingångs händelser ökar när händelserna släpps.The early input events metric is incremented when the events are dropped.

Det här konceptet används för att se till att bearbetningen går att upprepa oavsett var du börjar skriva ut från.This concept is used to ensure the processing is repeatable no matter where you start to output from. Utan sådan mekanism skulle det inte vara möjligt att garantera repeterbarhet, eftersom många andra strömmande system anspråk.Without such a mechanism, it would not be possible to guarantee repeatability, as many other streaming systems claim they do.

Sido effekter av tids toleranser för händelse ordningSide effects of event ordering time tolerances

Stream Analytics-jobb har flera alternativ för händelse ordning .Stream Analytics jobs have several Event ordering options. Två kan konfigureras i Azure Portal: inställningen för slut för ställnings händelser (out-of-order-tolerans) och de händelser som inkommer till den senaste inställningen (sent införsel tolerans).Two can be configured in the Azure portal: the Out of order events setting (out-of-order tolerance), and the Events that arrive late setting (late arrival tolerance). Den tidigaste införsel toleransen är fast och kan inte justeras.The early arrival tolerance is fixed and cannot be adjusted. Dessa tids principer används av Stream Analytics för att tillhandahålla starka garantier.These time policies are used by Stream Analytics to provide strong guarantees. Dessa inställningar har dock vissa ibland oväntade konsekvenser:However, these settings do have some sometimes unexpected implications:

  1. Sändning av händelser som är för tidigt.Accidentally sending events that are too early.

    Tidiga händelser ska inte anges som vanligt.Early events should not be outputted normally. Det är möjligt att tidiga händelser skickas till utdata om avsändarens klocka körs för snabbt.It's possible that early events are sent to the output if sender’s clock is running too fast though. Alla händelser som har tagits fram ignoreras, så du kan inte se något av dem från utdata.All early arriving events are dropped, so you will not see any of them from the output.

  2. Skicka gamla händelser till Event Hubs som ska bearbetas av Azure Stream Analytics.Sending old events to Event Hubs to be processed by Azure Stream Analytics.

    Även om gamla händelser kan verka ofarliga på grund av tillämpningen av den sena införsel toleransen kan de gamla händelserna släppas.While old events may seem harmless at first, because of the application of the late arrival tolerance, the old events may be dropped. Om händelserna är för gamla ändras system. timestamp -värdet under händelse inmatningen.If the events are too old, the System.Timestamp value is altered during event ingestion. På grund av det här beteendet är Azure Stream Analytics mer lämpligt för scenarier med händelse bearbetning i nästan real tid, i stället för historiska händelse bearbetnings scenarier.Due to this behavior, currently Azure Stream Analytics is more suited for near-real-time event processing scenarios, instead of historical event processing scenarios. Du kan ställa in händelser som når sent tid till det största möjliga värdet (20 dagar) för att undvika det här beteendet i vissa fall.You can set the Events that arrive late time to the largest possible value (20 days) to work around this behavior in some cases.

  3. Utdata verkar vara fördröjda.Outputs seem to be delayed.

    Den första vattenstämpeln genereras vid den beräknade tiden: den längsta händelse tiden som systemet har observerat hittills, minus storleken på den föråldrade tolerans perioden.The first watermark is generated at the calculated time: the maximum event time the system has observed so far, minus the out-of-order tolerance window size. Som standard är standard toleransen inställd på noll (00 minuter och 00 sekunder).By default, the out-of-order tolerance is configured to zero (00 minutes and 00 seconds). När du ställer in det på ett högre värde, som inte är noll, fördröjs strömmande jobbets första utdata av det tiden (eller senare) på grund av den första vattenstämpelns tid som beräknas.When you set it to a higher, non-zero time value, the streaming job's first output is delayed by that value of time (or greater) due to the first watermark time that is calculated.

  4. Indata är sparse.Inputs are sparse.

    När det inte finns någon inmatad partition på en specifik partition, beräknas vattenstämpelns tid som införsel tid minus fönstret sent införsel tolerans.When there is no input in a given partition, the watermark time is calculated as the arrival time minus the late arrival tolerance window. Det innebär att om indata-händelser är ovanliga och sparse kan utdata fördröjas med den tiden.As a result, if input events are infrequent and sparse, the output can be delayed by that amount of time. Standard händelser som når sent värde är 5 sekunder.The default Events that arrive late value is 5 seconds. Du bör förvänta dig att se en fördröjning när du skickar inmatade händelser en i taget, till exempel.You should expect to see some delay when sending input events one at a time, for example. Fördröjningen kan bli sämre om du ställer in händelser som når sent fönster till ett stort värde.The delays can get worse, when you set Events that arrive late window to a large value.

  5. System. timestamp -värdet skiljer sig från tiden i fältet händelse tid .System.Timestamp value is different from the time in the event time field.

    Som tidigare har beskrivits justerar systemet händelse tiden genom de inaktuella toleranserna eller de sena inställnings Fönstren.As described previously, the system adjusts event time by the out-of-order tolerance or late arrival tolerance windows. System. timestamp -värdet för händelsen justeras, men inte tids fältet för händelse .The System.Timestamp value of the event is adjusted, but not the event time field. Detta kan användas för att identifiera vilka händelser som tidsstämplarna justerats.This can be used to identify for which events the timestamps adjusted. Om systemet ändrade tidsstämpeln på grund av en av toleranserna, är det vanligt vis samma.If the system changed the timestamp due to one of the tolerances, normally they are the same.

Mått att ObserveraMetrics to observe

Du kan se ett antal tids toleranss effekter för händelse ordning genom Stream Analytics jobb mått.You can observe a number of the Event ordering time tolerance effects through Stream Analytics job metrics. Följande mått är relevanta:The following metrics are relevant:

MetricMetric BeskrivningDescription
Händelser som inte är i ordningOut-of-Order Events Anger antalet händelser som tagits emot i fel ordning, som antingen släpptes eller fått en justerad tidsstämpel.Indicates the number of events received out of order, that were either dropped or given an adjusted timestamp. Det här måttet påverkas direkt av konfigurationen av inställningen för out of order-händelser på sidan händelse ordning på jobbet i Azure Portal.This metric is directly impacted by the configuration of the Out of order events setting on the Event ordering page on the job in the Azure portal.
Sena ingångs händelserLate Input Events Anger antalet händelser som anländer sent från källan.Indicates the number of events arriving late from the source. Måttet inkluderar händelser som har släppts eller har haft tidsstämpeln ändrats.This metric includes events that have been dropped or have had their timestamp was adjusted. Det här måttet påverkas direkt av konfigurationen av de händelser som anländer till den senaste inställningen på sidan händelse ordning på jobbet i Azure Portal.This metric is directly impacted by the configuration of the Events that arrive late setting in the Event ordering page on the job in the Azure portal.
Tidiga ingångs händelserEarly Input Events Anger antalet händelser som inkommer tidigt från källan som antingen har släppts, eller om deras tidsstämpel har justerats om de ligger utanför 5 minuter tidigt.Indicates the number of events arriving early from the source that have either been dropped, or their timestamp has been adjusted if they are beyond 5 minutes early.
Fördröjning för vattenstämpelWatermark Delay Anger fördröjningen för bearbetnings jobbet för strömmande data.Indicates the delay of the streaming data processing job. Mer information finns i följande avsnitt.See more information in the following section.

Fördröjnings information för vattenstämpelWatermark delay details

Fördröjnings måttet för vattenstämpeln beräknas som den tid då den bearbetade nodens klock klocka minus den största vatten märket har sett hittills.The Watermark delay metric is computed as the wall clock time of the processing node minus the largest watermark it has seen so far. Mer information finns i blogg inlägget för vattenstämpelns fördröjning.For more information, see the watermark delay blog post.

Det kan finnas flera orsaker till att Metric-värdet är större än 0 under normal drift:There can be several reasons this metric value is larger than 0 under normal operation:

  1. Potentiell bearbetnings fördröjning för den strömmande pipelinen.Inherent processing delay of the streaming pipeline. Normalt är den här fördröjningen nominell.Normally this delay is nominal.

  2. Tolerans fönstret är inställt, eftersom vattenstämpeln minskas med storleken på tolerans perioden.The out-of-order tolerance window introduced delay, because watermark is reduced by the size of the tolerance window.

  3. I fönstret sent införsel introducerades fördröjningen, eftersom vattenstämpeln minskas med storleks fönstret tolerans.The late arrival window introduced delay, because watermark is reduced by the size the tolerance window.

  4. Klock skevning för den bearbetnings nod som genererar måttet.Clock skew of the processing node generating the metric.

Det finns ett antal andra resurs begränsningar som kan orsaka strömnings pipelinen att saktas ned.There are a number of other resource constraints that can cause the streaming pipeline to slow down. Fördröjnings måttet för vattenstämpeln kan orsaka på grund av:The watermark delay metric can rise due to:

  1. Det finns inte tillräckligt med bearbetnings resurser i Stream Analytics för att hantera mängden indata-händelser.Not enough processing resources in Stream Analytics to handle the volume of input events. Information om hur du skalar upp resurser finns i förstå och justera strömnings enheter.To scale up resources, see Understand and adjust Streaming Units.

  2. Det finns inte tillräckligt med data flöde i insamlarna för indata-händelser, så de är begränsade.Not enough throughput within the input event brokers, so they are throttled. Möjliga lösningar finns i skala upp Azure Event Hubs data flödes enheter automatiskt.For possible solutions, see Automatically scale up Azure Event Hubs throughput units.

  3. Utgående mottagare är inte etablerade med tillräckligt med kapacitet, så de är begränsade.Output sinks are not provisioned with enough capacity, so they are throttled. De möjliga lösningarna varierar kraftigt beroende på vilken smak av output service som används.The possible solutions vary widely based on the flavor of output service being used.

Händelse frekvens för utdataOutput event frequency

Azure Stream Analytics använder vattenstämpeln som enda utlösare för att skapa utdata-händelser.Azure Stream Analytics uses watermark progress as the only trigger to produce output events. Eftersom vattenstämpeln härleds från indata kan den upprepas under haveri återställningen och även vid ombearbetning av användare.Because the watermark is derived from input data, it is repeatable during failure recovery and also in user initiated reprocessing. När du använder Windows- mängderger tjänsten bara utdata i slutet av Windows.When using windowed aggregates, the service only produces outputs at the end of the windows. I vissa fall kanske användarna vill se del mängder som genererats från Windows.In some cases, users may want to see partial aggregates generated from the windows. Partiella mängder stöds inte för närvarande i Azure Stream Analytics.Partial aggregates are not supported currently in Azure Stream Analytics.

I andra strömnings lösningar kan utmatnings händelser materialiseras vid olika utlösnings punkter, beroende på externa förhållanden.In other streaming solutions, output events could be materialized at various trigger points, depending on external circumstances. Det är möjligt att vissa lösningar på utdata för en viss tids period genereras flera gånger.It's possible in some solutions that the output events for a given time window could be generated multiple times. När indatavärdena är förfinade blir de sammansatta resultaten mer exakta.As the input values are refined, the aggregate results become more accurate. Händelser kan vara spekulationde vid första och revideras över tid.Events could be speculated at first, and revised over time. Till exempel, när en viss enhet är offline från nätverket, kan ett uppskattat värde användas av ett system.For example, when a certain device is offline from the network, an estimated value could be used by a system. Senare kommer samma enhet att vara online till nätverket.Later on, the same device comes online to the network. Sedan kan den faktiska händelse informationen inkluderas i indataströmmen.Then the actual event data could be included in the input stream. Resultatet från bearbetningen av tids perioden ger mer exakta utdata.The output results from processing that time window produces more accurate output.

Illustrera exempel på vattenstämplarIllustrated example of watermarks

Följande bilder visar hur vattenstämplar fortskrider under olika förhållanden.The following images illustrate how watermarks progress in different circumstances.

I den här tabellen visas exempel data som visas i diagrammet nedan.This table shows the example data that is charted below. Observera att händelse tiden och tiden för införseln varierar, ibland matchning och ibland inte.Notice that the event time and the arrival time vary, sometimes matching and sometimes not.

HändelsetidEvent time Införsel tidArrival time DeviceIdDeviceId
12:0712:07 12:0712:07 device1device1
12:0812:08 12:0812:08 device2device2
12:1712:17 12:1112:11 device1device1
12:0812:08 12:1312:13 device3device3
12:1912:19 12:1612:16 device1device1
12:1212:12 12:1712:17 device3device3
12:1712:17 12:1812:18 device2device2
12:2012:20 12:1912:19 device2device2
12:1612:16 12:2112:21 device3device3
12:2312:23 12:2212:22 device2device2
12:2212:22 12:2412:24 device2device2
12:2112:21 12:2712:27 device3device3

I den här bilden används följande toleranser:In this illustration, the following tolerances are used:

  • Tidig införsel av Windows är 5 minuterEarly arrival windows is 5 minutes
  • Fönstret sent tillkommer är 5 minuterLate arriving window is 5 minutes
  • Omordnings fönstret är 2 minuterReorder window is 2 minutes
  1. Bild av vattenstämpelns förlopp genom följande händelser:Illustration of watermark progressing through these events:

    Bild av Azure Stream Analytics vattenstämpel

    Viktiga processer som illustreras i föregående bild:Notable processes illustrated in the preceding graphic:

    1. Den första händelsen (device1) och den andra händelsen (device2) har justerade tider och bearbetas utan justeringar.The first event (device1), and second event (device2) have aligned times and are processed without adjustments. Vattenstämpeln förloppet för varje händelse.The watermark progresses on each event.

    2. När den tredje händelsen (device1) bearbetas kommer ankomst tiden (12:11) före händelse tiden (12:17).When the third event (device1) is processed, the arrival time (12:11) precedes the event time (12:17). Händelsen anlände 6 minuter tidigt, så händelsen släpps på grund av toleransen på 5 minuter för tidig införsel.The event arrived 6 minutes early, so the event is dropped due to the 5-minute early arrival tolerance.

      Vattenstämpeln fortskrider inte i det här fallet en tidig händelse.The watermark doesn't progress in this case of an early event.

    3. Den fjärde händelsen (device3) och femte händelsen (device1) har justerade tider och bearbetas utan justering.The fourth event (device3), and fifth event (device1) have aligned times and are processed without adjustment. Vattenstämpeln förloppet för varje händelse.The watermark progresses on each event.

    4. När den sjätte händelsen (device3) bearbetas, är ankomst tiden (12:17) och händelse tiden (12:12) under vatten märkes nivån.When the sixth event (device3) is processed, the arrival time (12:17) and the event time (12:12) is below the watermark level. Händelse tiden justeras mot vatten märkes nivån (12:17).The event time is adjusted to the water mark level (12:17).

    5. När den tolfte händelsen (device3) bearbetas, är ankomst tiden (12:27) 6 minuter före händelse tiden (12:21).When the twelfth event (device3) is processed, the arrival time (12:27) is 6 minutes ahead of the event time (12:21). Principen för sen införsel tillämpas.The late arrival policy is applied. Händelse tiden justeras (12:22), som är ovanför vattenstämpeln (12:21), så att ingen ytterligare justering tillämpas.The event time is adjusted (12:22), which is above the watermark (12:21) so no further adjustment is applied.

  2. Den andra illustrationen av vattenstämpeln förloppet utan en tidig införsel princip:Second illustration of watermark progressing without an early arrival policy:

    Bild av Azure Stream Analytics ingen tidigare princip

    I det här exemplet tillämpas ingen tidig införsel princip.In this example, no early arrival policy is applied. Avvikare-händelser som når tidig ökning av vattenstämpeln nämnvärt.Outlier events that arrive early raise the watermark significantly. Observera att den tredje händelsen (deviceId1 vid tid 12:11) inte släpps i det här scenariot och att vattenstämpeln upphöjs till 12:15.Notice the third event (deviceId1 at time 12:11) is not dropped in this scenario, and the watermark is raised to 12:15. Den fjärde händelse tiden justeras framåt 7 minuter (12:08 till 12:15) som ett resultat.The fourth event time is adjusted forward 7 minutes (12:08 to 12:15) as a result.

  3. I den sista bilden används under strömmar (över DeviceId).In the final illustration, substreams are used (OVER the DeviceId). Flera vattenstämplar spåras, en per data ström.Multiple watermarks are tracked, one per stream. Det finns färre händelser när tiderna justeras som ett resultat.There are fewer events with their times adjusted as a result.

    Bild av vattenstämpeln för Azure Stream Analytics under strömmar

Nästa stegNext steps