Partager via


System.Timestamp()

✅ Azure Stream Analytics

Chaque événement à chaque étape de la requête dans Azure Stream Analytics a un horodatage associé. System.Timestamp() est une propriété système qui peut être utilisée pour récupérer l’horodatage de l’événement.

Ci-dessous, nous décrivons comment Azure Stream Analytics affecte des horodatages aux événements.

Horodatage des événements d’entrée

L’horodatage de l’événement d’entrée peut être défini par la valeur de colonne (ou une expression) spécifiée dans la clause TIMESTAMP BY :

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

Si une clause TIMESTAMP BY n’est pas spécifiée pour une entrée donnée, l’heure d’arrivée de l’événement est utilisée comme horodatage. Par exemple, l’heure mise en file d’attente de l’événement sera utilisée en cas d’entrée Event Hub.

Horodatage d’événements résultant

Lorsque des calculs sont effectués, l’horodatage de l’événement résultant est l’heure logique la plus ancienne à laquelle ce résultat peut être déterminé.

Examinons comment les opérations de requête de base dans Azure Stream Analytics (filtres, projections, agrégations et jointures) génèrent les horodatages du résultat.

Projection

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

Les projections ne modifient pas l’horodatage de l’événement, l’horodatage du résultat est identique à l’horodatage de l’entrée.

Filter

SELECT *  
FROM input  
WHERE prop1 > prop2  
  

Les filtres ne modifient pas l’horodatage de l’événement. L’horodatage du résultat est identique à l’horodatage de l’entrée.

FENÊTRE GROUP BY au fil du temps

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

L’horodatage du résultat de l’agrégat est la fin de la fenêtre de temps à laquelle ce résultat correspond. Consultez les articles de fenêtrage décrivant différents types de fenêtres dans Azure Stream Analytics.

INNER JOIN

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

Une jointure interne produit des résultats qui correspondent à des paires d’événements correspondantes à partir d’input1 et d’input2.

L’événement qui représente la correspondance de l’événement e1 à partir d’input1 et e2 à partir d’input2 est horodaté par les derniers horodatages d’e1 et e2.

JOINTURE EXTERNE GAUCHE

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

Une jointure externe gauche produit des résultats de deux types. Certains correspondent à une paire d’événements correspondante d’entrée1 et d’entrée2 ; d’autres correspondent uniquement à un événement d’entrée1 et indiquent qu’aucun événement correspondant d’entrée2 n’a été trouvé.

Les événements qui représentent une correspondance (a à la fois input1 et input2) sont horodatés par les derniers horodatages des entrées correspondantes (comme dans le cas de INNER JOIN ci-dessus).

Les événements qui représentent des non-correspondances (input2 est NULL) sont horodatés par l’heure logique la plus récente à laquelle un événement d’entrée2 correspondant a pu se produire. Par exemple, dans l’exemple ci-dessus, il s’agit de l’horodatage d’entrée1 + 10 minutes.