Référence sur le langage de requête Stream Analytics

Azure Stream Analytics offre un langage de requête SQL pour effectuer des transformations et des calculs sur des flux d’événements.

Langage de requête Stream Analytics, sous-ensemble de la syntaxe T-SQL

Ce document décrit la syntaxe, l'utilisation et les meilleures pratiques en relation avec le langage de requête Stream Analytics. Tous les exemples présentés dans ce document reposent sur un scénario de gare de péage décrit ci-dessous.

Le langage de requête d'Azure Stream Analytics est un sous-ensemble de la syntaxe T-SQL standard permettant d'effectuer des calculs de diffusion en continu.

Scénario de gare de péage

Les stations de péage sont des installations courantes. Il en existe en grand nombre pour les autoroutes, les ponts et les tunnels dans le monde entier. Chaque station de péage dispose de plusieurs guichets qui peuvent être manuels (l'usager s'arrête pour régler sa contribution à un préposé) ou automatisés (un capteur installé sur le guichet scanne une carte RFID apposée sur le pare-brise du véhicule qui franchit le péage). Il est facile de visualiser le franchissement de ces stations de péage par les véhicules sous la forme d’un flux d’événements sur lequel des opérations intéressantes peuvent être effectuées.

Heure d'arrivée et heure d'application

Dans tout système temporel comme Azure Stream Analytics, il est essentiel de comprendre la progression de temps. Chaque événement qui transite par le système est fourni avec un horodatage accessible via System.Timestamp(). En d’autres termes, chaque événement de notre système représente un point dans le temps. Cet horodatage peut être une heure d'application spécifiée par l'utilisateur dans la requête, ou une heure d'arrivée attribuée par le système. L’heure d’arrivée a des significations différentes en fonction des sources d’entrée. Pour les événements d’Azure Event Hub, l’heure d’arrivée est l’horodatage donné par le hub d’événements ; pour le stockage Blob, il s’agit de la dernière heure de modification de l’objet blob. L'horodatage est le point dans le temps pertinent pour la capture ou l'analyse de données. Si l’utilisateur souhaite utiliser une heure d’application, il peut le faire à l’aide du mot clé TIMESTAMP BY. Dans le scénario ci-dessus, il s'agit de l'entrée du véhicule dans la gare de péage. Il est essentiel d’identifier le « timestamp » dans le flux de données entrant. Il est important de vérifier que l’heure capturée confirme également l’occurrence d’un événement. Par exemple, si l’on surveille les compteurs de trésorerie et souhaite compter le nombre de clients facturés, dans l’idéal, l’horodatage de l’événement doit être « paiement réussi » plutôt que « facturation générée ».

TIMESTAMP BY

Dans Azure Stream Analytics, tous les événements ont un horodatage bien défini. Si l’utilisateur souhaite utiliser l’heure de l’application, il peut utiliser le mot clé TIMESTAMP BY pour spécifier la colonne dans la charge utile qui doit être utilisée pour horodatage de chaque événement entrant afin d’effectuer des calculs temporels tels que fenêtrage, jointures, etc. Nous vous recommandons d’utiliser TIMESTAMP BY à l’heure d’arrivée comme meilleure pratique. TIMESTAMP BY peut être utilisé sur n’importe quelle colonne de type datetime et tous les formats ISO 8601 sont pris en charge. System.Timestamp() ne peut être utilisé que dans Select.

Voici un exemple d'utilisation des mots clés TIMESTAMP BY qui utilise la colonne EntryTime comme heure d'application pour des événements :

  
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime  
  

Respect de la casse du nom de champ

Les noms de champs d’un travail créé à l’aide du niveau de compatibilité 1.0 sont modifiés en minuscules (sans respecter la casse) lorsqu’ils sont traités par le moteur Azure Stream Analytics. Pour les formats d’entrée qui prennent en charge un schéma respectant la casse, par exemple JSON, vous pouvez construire des événements qui ont des champs en double lorsque les noms de champs sont comparés de manière non sensible à la casse. De tels événements sont considérés comme non valides, et supprimés en cours de traitement.

Le respect de la casse est conservé pour les noms de champs lorsque le travail Stream Analytics est créé à l’aide du niveau de compatibilité 1.1 ou ultérieur. Pour plus d’informations, reportez-vous à la rubrique Configurer le niveau de compatibilité .

Contenu de cette section

Consultez les rubriques suivantes pour obtenir des conseils sur l'utilisation du langage de requête Stream Analytics.

Voir aussi