Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Azure Stream Analytics offre un langage de requête SQL pour effectuer des transformations et des calculs sur des flux d’événements.
Sous-ensemble de la syntaxe T-SQL
Ce document décrit la syntaxe, l’utilisation et les meilleures pratiques pour le langage de requête Stream Analytics. Tous les exemples utilisés dans ce document reposent sur un scénario de stand de péage, comme décrit ci-dessous.
Le langage de requête Stream Analytics est un sous-ensemble de syntaxe T-SQL standard pour effectuer des calculs de streaming.
Le scénario de cabine de péage
Une station de péage est un phénomène courant : nous les rencontrons dans de nombreuses voies rapides, ponts et tunnels à travers le monde. Chaque station de péage a plusieurs cabines de péage, ce qui peut être manuel , ce qui signifie que vous arrêtez de payer le péage à un standard, ou automatisé – où un capteur placé au-dessus de la cabine scanne une carte RFID fixée au pare-brise de votre véhicule lorsque vous passez la cabine de péage. Il est facile de visualiser le passage des véhicules à travers ces stations de péage en tant que flux d’événements sur lequel des opérations intéressantes peuvent être effectuées.
Heure d’arrivée et heure de l’application
Dans n’importe quel système temporel comme Azure Stream Analytics, il est essentiel de comprendre la progression du 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 que l’utilisateur peut spécifier dans la requête ou le système peut affecter en fonction de l’heure d’arrivée. 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 d’objets blob, il s’agit de la dernière modification de l’objet blob. L’horodatage est le point dans le temps qui est pertinent pour capturer ou analyser des 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 à la cabine de péage. Il est essentiel d’identifier le « timestamp » dans le flux de données entrant, il est important de s’assurer que l’heure capturée confirme également l’occurrence d’un événement. Par exemple, si l’un 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 « réussi » au lieu de « facturation générée ».
Horodatage par
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 horodatager chaque événement entrant afin d’effectuer tout calcul temporel tel que Windowing, Joins, etc. Nous vous recommandons d’utiliser TIMESTAMP BY au fil du temps 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 TIMESTAMP BY qui utilise la colonne EntryTime comme heure de l’application pour les é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 respect de la casse) lors du traitement par le moteur Azure Stream Analytics. Pour les formats d’entrée qui prennent en charge le schéma sensible à 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 insensitivité. Ces événements sont considérés comme des événements non valides et sont supprimés pendant le traitement.
La confidentialité de la casse est conservée pour les noms de champs lorsque le travail Stream Analytics est créé à 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
Reportez-vous aux rubriques suivantes pour obtenir des conseils sur l’utilisation du langage de requête Stream Analytics.