Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Les fenêtres d’instantanés regroupent les événements qui ont le même horodatage. Contrairement à d’autres types de fenêtrage, qui nécessitent une fonction de fenêtre spécifique (par exemple , SessionWindow(), vous pouvez appliquer une fenêtre d’instantané en ajoutant System.Timestamp() à la clause GROUP BY.
Le diagramme suivant illustre un flux avec une série d’événements et la façon dont ils sont mappés dans des fenêtres d’instantanés.
System.Timestamp() peut être considéré dans la clause GROUP BY comme une colonne clé ou une définition de fenêtre d’instantané, car elle regroupe les événements dans une fenêtre en fonction de l’égalité des horodatages. En cas de combinaison avec une autre fonction de fenêtre, System.Timestamp() est traité comme une clé et non comme une définition de fenêtre. System.Timestamp() ne génère pas d’erreur lorsqu’elle est utilisée avec d’autres fonctions de fenêtre, contrairement à l’utilisation de plusieurs fonctions de fenêtre dans la clause GROUP BY. L’utilisation de System.Timestamp() et d’une fonction de fenêtre dans GROUP BY peut être utile pour traiter les résultats par lots.
Toute expression qui contient System.Timestamp() n’est pas considérée comme une fenêtre. Par exemple, GROUP BY DATEPART(minute, System.Timestamp()) l’erreur « une fenêtre doit être spécifiée » échoue.
Syntaxe
System.Timestamp()
Exemples
Exemple de base
L’exemple suivant retourne le nombre de tweets avec le même type de rubrique qui se produit exactement en même temps :
SELECT Topic, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Exemple d’instantané de fenêtre bascule
Une utilisation courante pour les fenêtres d’instantanés consiste à agréger les événements une fois qu’ils ont été regroupés sur un horodatage unique via une fonction de fenêtre précédente, comme TumblingWindow ci-dessous.
L’exemple suivant retourne le nombre de tweets avec le même type de rubrique par le même utilisateur dans les intervalles de 30 minutes :
WITH PerInterval AS (
SELECT Topic, User, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, User, TumblingWindow(minute, 30)
)
SELECT * INTO UserTopicsCount FROM PerInterval
Pour trouver le nombre d’utilisateurs et le nombre total de tweets par rubrique dans le même intervalle, vous pouvez utiliser le résultat de la requête précédente. En raison des résultats de la fenêtre bascule, tous ont des horodatages alignés sur la limite de 30 minutes, vous pouvez utiliser une fenêtre d’instantané pour retourner des événements à chaque limite, car ils ont tous la même valeur d’horodatage.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp()
La requête précédente a retourné le nombre d’utilisateurs et le nombre total de tweets par rubrique dans le même intervalle de 30 minutes. Pour obtenir les mêmes résultats une fois par 2 heures, ajoutez une fenêtre bascule de 2 heures à la clause GROUP BY.
La requête suivante retourne les résultats des quatre intervalles de 30 minutes à la fin de chaque fenêtre de 2 heures.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp(), Tumbling (hour, 2)
Exemple de fenêtres d’agrégation
Vous pouvez utiliser System.Timestamp() comme l’une des fenêtres de la construction d’agrégat Windows().
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
System.Timestamp())