Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SQL-ähnliche Abfragesprache in Azure Stream Analytics erleichtert die Implementierung von Echtzeitanalyselogik für Streamingdaten. Stream Analytics bietet zusätzliche Flexibilität durch benutzerdefinierte Funktionen, die in Ihrer Abfrage aufgerufen werden. Das folgende Codebeispiel ist eine UDF namens sampleFunction, die einen Parameter akzeptiert und für jeden Eingabedatensatz, den der Auftrag empfängt, das Ergebnis in die Ausgabe als sampleResult schreibt.
SELECT
UDF.sampleFunction(InputStream) AS sampleResult
INTO
output
FROM
InputStream
Funktionstypen
Azure Stream Analytics unterstützt die folgenden vier Funktionstypen:
- Benutzerdefinierte JavaScript-Funktionen
- Benutzerdefinierte JavaScript-Aggregate
- Benutzerdefinierte C#-Funktionen (mit Visual Studio)
- Azure Machine Learning
Sie können diese Funktionen für Szenarien wie die Echtzeitbewertung mithilfe von Machine Learning-Modellen, Zeichenfolgenmanipulationen, komplexen mathematischen Berechnungen, Codieren und Decodieren von Daten verwenden.
Von Bedeutung
Benutzerdefinierte C#-Funktionen für Azure Stream Analytics werden am 30. September 2024 eingestellt. Nach diesem Datum ist es nicht möglich, das Feature zu verwenden.
Einschränkungen
Benutzerdefinierte Funktionen sind zustandslos, und der Rückgabewert kann nur ein skalarer Wert sein. Sie können externe REST-Endpunkte von diesen benutzerdefinierten Funktionen nicht aufrufen, da sich dies wahrscheinlich auf die Leistung Ihres Auftrags auswirkt.
Azure Stream Analytics zeichnet nicht alle Funktionsaufrufe und zurückgegebenen Ergebnisse auf. Um eine Wiederholbarkeit zu garantieren – sodass beispielsweise die erneute Ausführung eines Auftrags mit einem älteren Zeitstempel die gleichen Ergebnisse liefert – sollten Sie keine Funktionen wie Date.GetData() oder Math.random() verwenden, da diese Funktionen nicht bei jedem Aufruf dasselbe Ergebnis liefern.
Ressourcenprotokolle
Laufzeitfehler werden als schwerwiegend betrachtet und werden über Aktivitäts- und Ressourcenprotokolle angezeigt. Es wird empfohlen, dass Ihre Funktion alle Ausnahmen und Fehler behandelt und ein gültiges Ergebnis an Ihre Abfrage zurückgibt. Dadurch wird verhindert, dass Ihr Auftrag in den Status "Fehlgeschlagen" wechselt.
Ausnahmenbehandlung
Jede Ausnahme während der Datenverarbeitung wird als katastrophaler Fehler beim Verwenden von Daten in Azure Stream Analytics betrachtet. Benutzerdefinierte Funktionen haben ein höheres Potenzial, Ausnahmen auszulösen und dazu zu führen, dass die Verarbeitung beendet wird. Um dieses Problem zu vermeiden, verwenden Sie einen Try-Catch-Block in JavaScript oder C#, um Ausnahmen während der Codeausführung abzufangen. Ausnahmen, die abgefangen werden, können protokolliert und behandelt werden, ohne dass ein Systemfehler verursacht wird. Es wird empfohlen, den benutzerdefinierten Code immer in einen try-catch-Block einzuschließen, damit keine unerwarteten Ausnahmen für das Verarbeitungsmodul ausgelöst werden.