Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
✅ Azure Stream Analytics
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.
Nedan 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. Enqueued-tid för händelsen används till exempel vid Event Hub-indata.
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 densamma 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.
INNER JOIN
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.
Händelserna som representerar en matchning (har både input1 och input2) tidsstämplas av den senaste tidsstämplarna för matchande indata (som i fallet 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 ovan är det till exempel indata1:s tidsstämpel + 10 minuter.