Echtzeitanalyse benötigt? Stream-Analytics-Job erstellen

Veröffentlicht am:

Eine Maschine sendet den ganzen Tag Temperaturwerte. Das Betriebsteam muss Überhitzung beim Eintreffen der Werte erkennen; ein nächtlicher Bericht verzögert die Reaktion. Azure Stream Analytics führt eine kontinuierliche Abfrage über eingehende Ereignisse aus. Hier empfängt Event Hubs die Messwerte; Stream Analytics speichert Temperaturen über 30°C.

Testereignisse im Portal → Event Hubs → Stream Analytics → Blob-Speicher

Wann Data Factory oder Stream Analytics einsetzen?

Data Factory Stream Analytics
Typische Eingabe Dateien, Tabellen, Datenbankdatensätze Ereignisse von Sensoren, Anwendungen oder Geräten
Ausführung Eine Pipeline startet zeitgesteuert oder durch einen Trigger und endet nach der Verarbeitung Ein laufender Job verarbeitet fortlaufend eingehende Ereignisse
Beispiel Jede Nacht Verkaufsdaten kopieren und einen Bericht vorbereiten Kontinuierlich Temperaturwerte über 30°C erkennen
Einsatz Daten übertragen, transformieren und Verarbeitungsschritte koordinieren Ereignisströme fortlaufend filtern oder auswerten

Ein Ereignis ist hier ein Datensatz, etwa ein Temperaturwert oder ein Kauf. Stream Analytics kann auch unterstützten Dateispeicher lesen und den Strom mit Referenzdaten wie Sensorstandorten verbinden.

Alles erfolgt im Azure-Portal.

Speicher für Ergebnisse erstellen

Öffne Storage accounts → Create:

Resource group: rg-cloudtrips-stream-test-weu (neu)
Storage account: stctstreamweu
Region: West Europe
Account kind: StorageV2 (general-purpose v2)
Performance: Standard
Redundancy: LRS
Public network access: Enabled from all networks
Allow Blob anonymous access: Disabled

Passe den global eindeutigen Speichernamen bei Bedarf an und verwende ihn im gesamten Trip. Prüfe die Kosten und erstelle das Konto. Erstelle unter Containers den Container temperature-results mit privatem Zugriff.

Ereignisstrom und Job erstellen

Erstelle einen Event Hubs namespace:

Resource group: rg-cloudtrips-stream-test-weu
Namespace: evh-ctstreamweu
Region: West Europe
Pricing tier: Standard
Throughput units: 1
Auto-inflate: Disabled
Public network access: Enabled

Passe den Namespacenamen bei Bedarf an. Öffne darin Entities → Event Hubs → + Event Hub, erstelle temperatures mit 1 Partition und lasse Capture deaktiviert. Füge unter Consumer groups am Event Hub cg-stream hinzu, damit dieser Job eine eigene Leseposition hat.

Öffne Stream Analytics jobs → Create:

Resource group: rg-cloudtrips-stream-test-weu
Job name: asa-cttemperatureweu
Region: West Europe
Hosting environment: Cloud
Streaming units: kleinste verfügbare Zuweisung

Prüfe den angezeigten Preis. Streaming Units stellen die Rechenleistung für die Abfrage bereit. Erstelle den Job, aktiviere danach Identity → System assigned und speichere.

Ein- und Ausgabe verbinden

Weise über Access control (IAM) der jeweiligen Ressource diese Rollen zu:

Ressource Rolle Empfänger
Event-Hubs-Namespace Azure Event Hubs Data Receiver Verwaltete Identität von asa-cttemperatureweu
Event-Hubs-Namespace Azure Event Hubs Data Sender Dein angemeldeter Benutzer
Speicherkonto stctstreamweu Storage Blob Data Contributor Verwaltete Identität von asa-cttemperatureweu

Warte einige Minuten auf die Wirksamkeit der Berechtigungen. Öffne am Job Job topology → Inputs → Add stream input → Event Hub. Wähle Alias readings, deinen Namespace, Event Hub temperatures, Consumer Group cg-stream, Authentifizierung Managed identity und Format JSON / UTF-8. Speichere und prüfe den erfolgreichen Verbindungstest.

Wähle unter Outputs → Add → Blob storage/ADLS Gen2 den Alias hot-readings, Konto stctstreamweu, Container temperature-results und Managed identity. Wähle JSON, Line separated und UTF-8; setze das Pfadmuster auf hot/{date}/{time}. Behalte die Standardformate für Datum und Uhrzeit. Speichere und teste.

Eingehende Messwerte filtern

Öffne Query, ersetze die Abfrage und speichere:

SELECT deviceId, temperature
INTO [hot-readings]
FROM readings
WHERE temperature > 30

Stream-Analytics-Abfrageeditor mit readings, hot-readings und Temperaturfilter

Prüfe die Übereinstimmung der Aliasse mit Ein- und Ausgabe. Jedes eintreffende Ereignis wird ausgewertet; Temperaturen über 30 werden geschrieben.

Öffne Overview → Start, wähle den Ausgabestartzeitpunkt Now und warte auf Running.

Zwei Messwerte senden

Öffne temperatures → Data Explorer → Send events. Wähle Custom payload, Inhaltstyp JSON, und sende dies einmal:

{"deviceId":"sensor-1","temperature":22}

Ersetze den Inhalt durch diesen Messwert und sende erneut einmal:

{"deviceId":"sensor-1","temperature":35}

Event Hubs Data Explorer mit JSON für 35 Grad und erfolgreichem Senden

Prüfe das erfolgreiche Senden. Sende beide Nachrichten nach Erreichen von Running, da der Job ab Now liest.

Gespeichertes Ergebnis prüfen

Öffne stctstreamweu → Containers → temperature-results, aktualisiere die Ansicht und öffne die hot-Ordner. Die gebündelte Blob-Ausgabe kann einige Minuten benötigen. Öffne die erzeugte Ausgabedatei oder lade sie herunter.

Blob-Ausgabe mit sensor-1 und Temperatur 35

Erwarte den Datensatz mit 35°C. Das Ereignis mit 22°C liegt unter dem Schwellenwert und wird herausgefiltert. Dateinamen und Ordnerzeitstempel variieren; wiederholtes Senden kann zusätzliche passende Datensätze erzeugen.

Abschließen

Stoppe den Stream-Analytics-Job nach der Prüfung. Event-Hubs-Kapazität verursacht bis zum Löschen des Namespace weiter Kosten. Lösche abschließend rg-cloudtrips-stream-test-weu. Das entfernt den Job, den Event-Hubs-Namespace und das Speicherkonto einschließlich der gespeicherten Ergebnisse.