Freigeben über


System.Timestamp()

✅ Azure Stream Analytics

Jedes Ereignis in jeder Phase der Abfrage in Azure Stream Analytics hat einen Zeitstempel zugeordnet. System.Timestamp() ist eine Systemeigenschaft, die zum Abrufen des Zeitstempels des Ereignisses verwendet werden kann.

Nachfolgend wird beschrieben, wie Azure Stream Analytics Ereignissen Zeitstempel zuweist.

Zeitstempel für Eingabeereignisse

Der Zeitstempel des Eingabeereignisses kann durch Spaltenwert (oder einen Ausdruck) definiert werden, der in der TIMESTAMP BY-Klausel angegeben ist:

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

Wenn eine TIMESTAMP BY-Klausel für eine bestimmte Eingabe nicht angegeben ist, wird die Ankunftszeit des Ereignisses als Zeitstempel verwendet. Beispiel: Enqueued time of the event will be used in case of Event Hub input.

Zeitstempel des resultierenden Ereignisses

Bei der Ausführung von Berechnungen ist der Zeitstempel des resultierenden Ereignisses die früheste logische Zeit, zu der dieses Ergebnis bestimmt werden kann.

Sehen wir uns an, wie die grundlegenden Abfragevorgänge in Azure Stream Analytics (Filter, Projektionen, Aggregationen und Verknüpfungen) die Zeitstempel für das Ergebnis generieren.

Projection

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

Projektionen ändern den Zeitstempel des Ereignisses nicht, der Zeitstempel des Ergebnisses entspricht dem Zeitstempel der Eingabe.

Filter

SELECT *  
FROM input  
WHERE prop1 > prop2  
  

Filter ändern nicht den Zeitstempel des Ereignisses. Der Zeitstempel des Ergebnisses entspricht dem Zeitstempel der Eingabe.

GROUP BY im Zeitfenster

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

Der Zeitstempel des Ergebnisses des Aggregats ist das Ende des Zeitfensters, dem dieses Ergebnis entspricht. Weitere Informationen finden Sie in Windowsing-Artikeln , die verschiedene Fenstertypen in Azure Stream Analytics beschreiben.

INNER JOIN

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

Eine innere Verknüpfung erzeugt Ergebnisse, die übereinstimmenden Ereignispaaren aus Input1 und Input2 entsprechen.

Das Ereignis, das die Übereinstimmung des Ereignisses e1 von input1 und e2 von input2 darstellt, wird mit dem Zeitstempel der letzten Zeitstempel von e1 und e2 abgestempelt.

LINKE ÄUßERE VERKNÜPFUNG

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

Eine linke äußere Verknüpfung erzeugt Ergebnisse von zwei Typen. Einige entsprechen einem übereinstimmenden Ereignispaar von Input1 und Input2; andere entsprechen nur einem Ereignis von Input1 und geben an, dass kein übereinstimmende Ereignis von Input2 gefunden wurde.

Die Ereignisse, die eine Übereinstimmung darstellen (sowohl input1 als auch input2) werden mit dem Zeitstempel der übereinstimmenden Eingaben (wie im Fall von INNER JOIN oben) zeitstempelt.

Die Ereignisse, die Nicht-Übereinstimmungen darstellen (Eingabe2 ist NULL), werden zeitstempelt durch den neuesten logischen Zeitpunkt, zu dem ein übereinstimmendes Eingabe2-Ereignis aufgetreten sein könnte. Im obigen Beispiel wird beispielsweise der Zeitstempel +10 Minuten eingegeben.