Referenz zur Stream Analytics-Abfragesprache

Azure Stream Analytics bietet eine SQL Abfragesprache zum Durchführen von Transformationen und Berechnungen über Ereignisdatenströme.

Stream Analytics-Abfragesprache, eine Teilmenge der T-SQL-Syntax

In diesem Dokument werden Syntax, Nutzung und bewährte Methoden der Stream Analytics-Abfragesprache beschrieben. Alle in diesem Dokument verwendeten Beispiele basieren auf dem unten beschriebenen Mautstellen-Szenario.

Die Stream Analytics-Abfragesprache ist eine Teilmenge der T-SQL-Standardsyntax für Streamingberechnungen.

Das Mautstellen-Szenario

Eine Mautstation ist ein bekanntes Phänomen, dem wir auf vielen Autobahnen, Schnellstraßen, Brücken und Tunneln weltweit begegnen. Jede Mautstation verfügt über mehrere manuelle oder automatisierte Zahlstellen. Im ersten Fall wird die Gebühr bei einem Kassierer entrichtet, und im zweiten Fall scannt ein oben auf der Mautstelle montierter Sensor eine an der Windschutzscheibe befestigte RFID-Karte, während ein Fahrzeug die Mautstelle passiert. Es ist einfach, die Durchfahrt von Fahrzeugen durch diese Mautstellen als einen Strom von Ereignissen zu visualisieren, über den interessante Vorgänge ausgeführt werden können.

Ankunftszeit oder Anwendungszeit

In jedem zeitbasierten System wie Azure Stream Analytics kommt es darauf an, den Zeitablauf nachzuvollziehen. Jedes Ereignis, das das System durchläuft, enthält einen Zeitstempel, auf den über System.Timestamp() zugegriffen werden kann. Anders ausgedrückt: Jedes Ereignis in unserem System stellt einen Zeitpunkt dar. Dieser Zeitstempel kann entweder eine Anwendungszeit sein, die vom Benutzer in der Abfrage angegeben wird, oder er kann basierend auf der Ankunftszeit vom System zugewiesen werden. Die Eingangszeit hat basierend auf den Eingabequellen unterschiedliche Bedeutungen. Für die Ereignisse von Azure Event Hub ist die Eingangszeit der vom Event Hub angegebene Zeitstempel. für Blob Storage ist dies der Zeitpunkt der letzten Änderung des Blobs. Der Zeitstempel ist der Zeitpunkt, der für die Erfassung oder Analyse von Daten relevant ist. Wenn der Benutzer eine Anwendungszeit verwenden möchte, kann er dazu das SCHLÜSSELWORT TIMESTAMP BY verwenden. Im vorangehenden Szenario entspricht dies der Ankunftszeit des Fahrzeugs an der Mautstelle. Es ist wichtig, den Zeitstempel im eingehenden Datenstrom zu identifizieren. Dabei sollte sichergestellt werden, dass durch die Zeiterfassung auch bestätigt wird, dass ein Ereignis stattgefunden hat. Wenn bei der Überwachung eines Kassenterminals z. B. auch die Anzahl der abgefertigten Kunden ermittelt werden soll, dann ist der Ereigniszeitstempel "Zahlung erfolgt" aussagefähiger als der Zeitpunkt der Bonerstellung.

TIMESTAMP BY

In Azure Stream Analytics sind alle Ereignisse mit einem klar definierten Zeitstempel gekennzeichnet. Wenn der Benutzer die Anwendungszeit verwenden möchte, kann er das TIMESTAMP BY-Schlüsselwort verwenden, um die Spalte in der Nutzlast anzugeben, die zum Zeitstempel jedes eingehenden Ereignisses verwendet werden soll, um temporale Berechnungen wie Windowing, Joins usw. durchzuführen. Es wird empfohlen, TIMESTAMP BY über die Eingangszeit als bewährte Methode zu verwenden. TIMESTAMP BY kann für jede Spalte vom Typ datetime verwendet werden, und alle ISO 8601-Formate werden unterstützt. System.Timestamp() kann nur in Select verwendet werden.

Im Folgenden finden Sie ein TIMESTAMP BY-Beispiel, das die EntryTime-Spalte als Anwendungszeit für Ereignisse verwendet:

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

Unterscheidung nach Groß-/Kleinschreibung für Feldnamen

Feldnamen für einen Auftrag, der mithilfe des Kompatibilitätsgrads 1.0 erstellt wird, werden bei der Verarbeitung durch die Azure Stream Analytics-Engine in Kleinbuchstaben geändert (Groß-/Kleinschreibung wird nicht beachtet). Für Eingabeformate, die Schemas mit Unterscheidung nach Groß-/Kleinschreibung unterstützen, z. B. JSON, können Sie Ereignisse erstellen, die doppelte Felder aufweisen, wenn Feldnamen ohne Empfindlichkeit der Groß-/Kleinschreibung verglichen werden. Solche Ereignisse werden als ungültige Ereignisse angesehen und während der Verarbeitung gelöscht.

Die Groß-/Kleinschreibung wird für Feldnamen beibehalten, wenn der Stream Analytics Auftrag mithilfe des Kompatibilitätsgrads 1.1 oder höher erstellt wird. Weitere Informationen finden Sie im Thema Konfigurieren des Kompatibilitätsgrads .

In diesem Abschnitt

Anleitungen zur Verwendung der Stream Analytics-Abfragesprache finden Sie in den folgenden Themen.

Weitere Informationen