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 traverse le système est accompagné d’un horodateur qui est 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 selon les sources d’entrée. Pour les événements d’Azure Event Hub, l’heure d’arrivée est l’horodatage donné par le Event Hub ; pour le stockage d’objets BLOB, il s’agit de l’heure de dernière 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. S'il est essentiel d'identifier l'« horodatage » dans le flux entrant de données, il convient de veiller à ce que l'heure capturée confirme également l'occurrence d'un événement. Par exemple, si un utilisateur surveillant les compteurs d'espèces souhaite compter le nombre de clients facturés, dans l'idéal, l'événement d'horodatage doit être l'heure d'encaissement du paiement plutôt que l'heure de facturation.
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 horodater chaque événement entrant afin d’effectuer des calculs temporels tels que la fenêtrage, les jointures, etc. Nous vous recommandons d’utiliser l’horodatage par rapport à 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 () peut uniquement être utilisé 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 pour un travail créé à l’aide du niveau de compatibilité 1,0 sont remplacés par des minuscules (sans respect de la casse) lorsqu’ils sont traités par le moteur de Azure Stream Analytics. Pour les formats d’entrée qui prennent en charge le schéma qui respecte 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 en cas de non-respect de 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 la tâche de Stream Analytics est créée à l’aide du niveau de compatibilité 1,1 ou supérieur. Pour plus d’informations, reportez-vous à la rubrique configurer le niveau de compatibilité .
Dans cette section
Consultez les rubriques suivantes pour obtenir des conseils sur l'utilisation du langage de requête Stream Analytics.