Naslaginformatie over de Stream Analytics-querytaal

Azure Stream Analytics biedt een SQL-querytaal voor het uitvoeren van transformaties en berekeningen voor gebeurtenisstromen.

Stream Analytics-querytaal, een subset van de T-SQL-syntaxis

In dit document worden de syntaxis, het gebruik en de aanbevolen procedures voor de Stream Analytics-querytaal beschreven. Alle voorbeelden die in dit document worden gebruikt, zijn afhankelijk van een tolpoortscenario, zoals hieronder wordt beschreven.

De Stream Analytics-querytaal is een subset van de standaard T-SQL-syntaxis voor het uitvoeren van streamingberekeningen.

Het tolhuisscenario

Een tolstation is een veelvoorkomend fenomeen – we komen ze tegen in veel snelwegen, bruggen en tunnels over de hele wereld. Elk tolstation heeft meerdere tolpoorten, die handmatig kunnen zijn - wat betekent dat u stopt om de tol te betalen aan een begeleider, of geautomatiseerd - waarbij een sensor boven op de stand een RFID-kaart scant die op de voorruit van uw voertuig is bevestigd wanneer u het tolhuisje passeert. Het is gemakkelijk om de doorgang van voertuigen door deze tolstations te visualiseren als een gebeurtenisstroom waarover interessante bewerkingen kunnen worden uitgevoerd.

Aankomsttijd versus toepassingstijd

In een tijdelijk systeem, zoals Azure Stream Analytics, is het essentieel om inzicht te hebben in de voortgang van de tijd. Elke gebeurtenis die door het systeem loopt, wordt geleverd met een tijdstempel die toegankelijk is via System.Timestamp(). Met andere woorden, elke gebeurtenis in ons systeem geeft een bepaald tijdstip weer. Deze tijdstempel kan een toepassingstijd zijn die de gebruiker kan opgeven in de query of het systeem kan toewijzen op basis van de aankomsttijd. De aankomsttijd heeft verschillende betekenissen op basis van de invoerbronnen. Voor de gebeurtenissen van Azure Event Hub is de aankomsttijd de tijdstempel die is opgegeven door de Event Hub; voor Blob Storage is dit de laatste wijzigingstijd van de blob. De tijdstempel is het tijdstip dat relevant is voor het vastleggen of analyseren van gegevens. Als de gebruiker een toepassingstijd wil gebruiken, kan deze dit doen met het trefwoord TIMESTAMP BY . In het bovenstaande scenario is het de toegang van het voertuig tot het tolhuisje. Het is essentieel om de 'tijdstempel' in de binnenkomende gegevensstroom te identificeren. U moet ervoor zorgen dat de vastgelegde tijd ook het optreden van een gebeurtenis bevestigt. Als u bijvoorbeeld geldtellers bewaakt en het aantal gefactureerde klanten wilt tellen, moet de tijdstempel van de gebeurtenis in het ideale geval 'betaling geslaagd' zijn in plaats van 'factuur gegenereerd'.

TIMESTAMP BY

In Azure Stream Analytics hebben alle gebeurtenissen een goed gedefinieerd tijdstempel. Als de gebruiker de toepassingstijd wil gebruiken, kan deze het trefwoord TIMESTAMP BY gebruiken om de kolom in de nettolading op te geven die moet worden gebruikt om elke binnenkomende gebeurtenis te timestampen om tijdelijke berekeningen uit te voeren, zoals Windowing, Joins, enzovoort. We raden u aan om TIMESTAMP BY te gebruiken in plaats van de aankomsttijd als best practice. TIMESTAMP BY kan worden gebruikt voor elke kolom van het type datetime en alle ISO 8601-indelingen worden ondersteund. System.Timestamp() kan alleen worden gebruikt in Selecteren.

Hier volgt een voorbeeld van TIMESTAMP BY waarin de kolom EntryTime wordt gebruikt als de toepassingstijd voor gebeurtenissen:

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

Hoofdlettergevoeligheid van veldnaam

Veldnamen voor een taak die is gemaakt met behulp van compatibiliteitsniveau 1.0, worden gewijzigd in kleine letters (niet hoofdlettergevoelig) wanneer ze worden verwerkt door de Azure Stream Analytics-engine. Voor invoerindelingen die ondersteuning bieden voor hoofdlettergevoelig schema, bijvoorbeeld JSON, kunt u gebeurtenissen maken met dubbele velden wanneer veldnamen op een niet-hoofdlettergevoelige manier worden vergeleken. Dergelijke gebeurtenissen worden beschouwd als ongeldige gebeurtenissen en worden verwijderd tijdens de verwerking.

Hoofdlettergevoeligheid blijft behouden voor veldnamen wanneer de Stream Analytics-taak wordt gemaakt met compatibiliteitsniveau 1.1 of hoger. Raadpleeg het onderwerp Compatibiliteitsniveau configureren voor meer informatie.

In deze sectie

Raadpleeg de volgende onderwerpen voor hulp bij het gebruik van de Stream Analytics-querytaal.

Zie ook