Naslaginformatie over de Stream Analytics-querytaal

Azure Stream Analytics biedt een SQL querytaal voor het uitvoeren van transformaties en berekeningen over stromen gebeurtenissen.

Stream Analytics querytaal, een subset van T-SQL syntaxis

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

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

Het tolwegscenario

Een tolstation is een veelvoorkomende verschijnsel: we komen ze tegen in veel expressways, 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 tolstation, of geautomatiseerde, waarbij een sensor die boven op de stand is geplaatst, een RFID-kaart scant die is bevestigd aan de ruit van uw voertuig wanneer u de tolwagen passeert. Het is eenvoudig om het aantal voertuigen via deze tolstations te visualiseren als een gebeurtenisstroom waarover interessante bewerkingen kunnen worden uitgevoerd.

Aankomsttijd versus toepassingstijd

In elk tijdelijk systeem, zoals Azure Stream Analytics, is het essentieel om de voortgang van de tijd te begrijpen. 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 betekenis op basis van de invoerbronnen. Voor de gebeurtenissen van Azure Event Hub is de aankomsttijd de tijdstempel die door de Event Hub wordt gegeven; 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 behulp van het trefwoord TIMESTAMP BY . In het bovenstaande scenario is dit de vermelding van het voertuig naar de tolweg. 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 de kassa's wilt controleren en het aantal gefactureerde klanten wilt tellen, moet het tijdstempel van de gebeurtenis in het ideale geval 'betaling geslaagd' zijn in plaats van 'gefactureerd' tijd.

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 TIMESTAMP BY over de aankomsttijd te gebruiken als best practice. TIMESTAMP BY kan worden gebruikt voor elke kolom van het type datum/tijd en alle ISO 8601-indelingen worden ondersteund. System.Timestamp() kan alleen worden gebruikt in Selecteren.

Hier volgt een TIMESTAMP BY-voorbeeld 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  
  

Gevoeligheid van veldnaam

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

De gevoeligheid van de case blijft behouden voor veldnamen wanneer de Stream Analytics taak wordt gemaakt met behulp van 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