Dela via


System.Timestamp()

✅ Azure Stream Analytics ✅ Fabric Eventstream

Anmärkning

Fabric Eventstream bygger på samma körning som Azure Stream Analytics. Därför gäller de begrepp som beskrivs i den här artikeln för både Azure Stream Analytics och Fabric Eventstream.

Varje händelse i varje steg i frågan i Azure Stream Analytics har en tidsstämpel associerad med den. System.Timestamp() är en systemegenskap som kan användas för att hämta händelsens tidsstämpel.

Här beskriver vi hur Azure Stream Analytics tilldelar tidsstämplar till händelser.

Tidsstämpel för indatahändelser

Tidsstämpel för indatahändelsen kan definieras av kolumnvärdet (eller ett uttryck) som anges i TIMESTAMP BY-satsen :

SELECT System.Timestamp() t   
FROM input   
TIMESTAMP BY MyTimeField  
  

Om en TIMESTAMP BY-sats inte har angetts för en viss indata används ankomsttiden för händelsen som en tidsstämpel. Till exempel Används enqueued-tid för händelsen när indata är Azure Event Hubs.

Resulterande händelsetidsstämpel

När beräkningar utförs är tidsstämpeln för den resulterande händelsen den tidigaste logiska tidpunkt då det här resultatet kunde fastställas.

Nu ska vi titta på hur de grundläggande frågeåtgärderna i Azure Stream Analytics (filter, projektioner, sammansättningar och kopplingar) genererar tidsstämplarna för resultatet.

Projection

SELECT  
      Prop1,  
      Prop2,  
      Prop3 - Prop4 / 12,
      System.Timestamp() t  
FROM input  
  

Projektioner ändrar inte tidsstämpeln för händelsen. Tidsstämpeln för resultatet är samma som tidsstämpeln för indata.

Filter

SELECT *  
FROM input  
WHERE prop1 > prop2  
  

Filter ändrar inte tidsstämpeln för händelsen. Tidsstämpeln för resultatet är samma som tidsstämpeln för indata.

GRUPPERA EFTER över tid

SELECT  
      userId,  
      AVG(prop1),  
      SUM(prop2),  
      System.Timestamp() t  
FROM input  
GROUP BY TumblingWindow(minute, 1), userId  
  

Tidsstämpeln för resultatet av aggregeringen är slutet av det tidsfönster som det här resultatet motsvarar. Se Fönsterartiklar som beskriver olika fönstertyper i Azure Stream Analytics.

INRE KOPPLING

SELECT  
      System.Timestamp()  
FROM input1  
JOIN input2  
ON DATEDIFF(minute, input1, input2) BETWEEN 0 AND 10  
  

En inre koppling ger resultat som motsvarar matchande par av händelser från input1 och input2.

Händelsen som representerar matchningen av händelse e1 från input1 och e2 från input2 tidsstämplas av den senaste tidsstämplarna e1 och e2.

VÄNSTER YTTRE KOPPLING

SELECT  
      System.Timestamp()  
FROM input1  
LEFT JOIN input2  
ON DATEDIFF(minute, input1, input2) BETWEEN -2 AND 10  
  

En vänster-yttre koppling ger resultat av två typer. Vissa motsvarar ett matchande par händelser från input1 och input2. andra motsvarar bara en händelse från input1 och anger att ingen matchande händelse från input2 hittades.

De händelser som representerar en matchning (har både input1 och input2) tidsstämplas av den senaste tidsstämplarna för matchande indata (som med inre koppling ovan).

Händelser som representerar icke-matchningar (input2 är NULL) tidsstämplas av den senaste logiska tidpunkten då en matchande input2-händelse kunde ha inträffat. I exemplet är det till exempel indata1:s tidsstämpel + 10 minuter.