Referenz zur Stream Analytics-Abfragesprache

Azure Stream Analytics bietet eine SQL-Abfragesprache zum Ausführen von Transformationen und Berechnungen über Ereignisströ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 durch das System fließt, enthält einen Zeitstempel, auf den über System.Timestamp()zugegriffen werden kann. Mit anderen Worten, 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 Ankunftszeit hat basierend auf den Eingabequellen unterschiedliche Bedeutungen. Für die Ereignisse aus Azure Event Hub ist die Ankunftszeit der Zeitstempel, der vom Event Hub angegeben wird. 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 dies mithilfe des TIMESTAMP BY-Schlüsselwort (keyword). Im vorangehenden Szenario entspricht dies der Ankunftszeit des Fahrzeugs an der Mautstelle. Es ist wichtig, den "Zeitstempel" im eingehenden Datenstrom zu identifizieren, man sollte sicherstellen, dass die erfasste Zeit auch das Auftreten eines Ereignisses bestätigt. Wenn man z. B. Geldzähler überwacht und die Anzahl der kunden in Rechnung gestellten Kunden zählen möchte, sollte der Ereigniszeitstempel im Idealfall "Zahlung erfolgreich" und nicht "Rechnungsgenerierungszeit" lauten.

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 die TIMESTAMP BY-Schlüsselwort (keyword) verwenden, um die Spalte in der Nutzlast anzugeben, die zum Timestampen jedes eingehenden Ereignisses verwendet werden soll, um temporale Berechnungen wie Fenster, Verknüpfungen usw. durchzuführen. Es wird empfohlen, TIMESTAMP BY über die Ankunftszeit 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 (Ohne Groß-/Kleinschreibung) geändert. Für Eingabeformate, die schemas unterstützen, z. B. JSON, können Sie Ereignisse mit doppelten Feldern erstellen, wenn Feldnamen unter Berücksichtigung 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