Echtzeitanalyse benötigt? Stream-Analytics-Job erstellen
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

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}

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.

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.