Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Momentaufnahmefenster gruppieren Ereignisse, die denselben Zeitstempel haben. Im Gegensatz zu anderen Fenstertypen, die eine bestimmte Fensterfunktion erfordern (z. B. SessionWindow(), können Sie ein Momentaufnahmefenster anwenden, indem Sie System.Timestamp() zur GROUP BY-Klausel hinzufügen.
Das folgende Diagramm veranschaulicht einen Datenstrom mit einer Reihe von Ereignissen und deren Zuordnung zu Momentaufnahmenfenstern.
System.Timestamp() kann in der GROUP BY-Klausel als Schlüsselspalte oder als Definition eines Momentaufnahmefensters betrachtet werden, da sie Ereignisse basierend auf der Gleichheit von Zeitstempeln in ein Fenster gruppiert. In Kombination mit einer anderen Fensterfunktion wird System.Timestamp() als Schlüssel und nicht als Fensterdefinition behandelt. System.Timestamp() erzeugt keinen Fehler, wenn er mit anderen Fensterfunktionen verwendet wird, im Gegensatz dazu, wenn mehrere Fensterfunktionen in der GROUP BY-Klausel verwendet werden. Die Verwendung von System.Timestamp() und einer Fensterfunktion in der GROUP BY-Datei kann hilfreich sein, um die Ergebnisse zu stapeln.
Jeder Ausdruck, der System.Timestamp() enthält, wird nicht als Fenster betrachtet.
GROUP BY DATEPART(minute, System.Timestamp()) Beispielsweise schlägt mit dem Fehler "Ein Fenster muss angegeben werden" fehl.
Syntax
System.Timestamp()
Beispiele
Einfaches Beispiel
Im folgenden Beispiel wird die Anzahl der Tweets mit demselben Thementyp zurückgegeben, der gleichzeitig auftritt:
SELECT Topic, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Beispiel für eine Momentaufnahme des Tumbling-Fensters
Eine häufige Verwendung von Momentaufnahmenfenstern besteht darin, Ereignisse zu aggregieren, nachdem sie über eine vorherige Fensterfunktion wie TumblingWindow unten auf einem einzelnen Zeitstempel gruppiert wurden.
Im folgenden Beispiel wird die Anzahl der Tweets mit demselben Thementyp vom gleichen Benutzer innerhalb von 30 Minuten zurückgegeben:
WITH PerInterval AS (
SELECT Topic, User, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, User, TumblingWindow(minute, 30)
)
SELECT * INTO UserTopicsCount FROM PerInterval
Um die Anzahl der Benutzer und die Gesamtzahl der Tweets pro Thema innerhalb desselben Intervalls zu finden, können Sie das Ergebnis der vorherigen Abfrage verwenden. Aufgrund der Ergebnisse des Sturzfensters werden alle Zeitstempel an der Grenze von 30 Minuten ausgerichtet, sie können ein Momentaufnahmefenster verwenden, um Ereignisse an jeder Grenze zurückzugeben, da sie alle den gleichen Zeitstempelwert aufweisen.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp()
Die vorherige Abfrage hat die Anzahl der Benutzer und die Gesamtzahl der Tweets pro Thema innerhalb des gleichen 30-Minuten-Intervalls zurückgegeben. Um die gleichen Ergebnisse einmal pro 2 Stunden zu erhalten, fügen Sie der GROUP BY-Klausel ein Sturzfenster von 2 Stunden hinzu.
Die folgende Abfrage gibt Ergebnisse aus allen vier 30 Minuten Intervallen am Ende jedes 2-Stunden-Fensters zurück.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp(), Tumbling (hour, 2)
Beispiel für Aggregatfenster
Sie können System.Timestamp() als eines der Fenster im Aggregat-Windows()-Konstrukt verwenden.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
System.Timestamp())