Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le langage de requête de type SQL dans Azure Stream Analytics facilite la mise en œuvre d’une logique d’analytique en temps réel sur les données de streaming. Stream Analytics offre une flexibilité supplémentaire par le biais de fonctions personnalisées qui sont appelées dans votre requête. L’exemple de code suivant est une fonction définie par l’utilisateur appelée sampleFunction
qui accepte un paramètre, chaque enregistrement d’entrée que le travail reçoit, et le résultat est écrit dans la sortie en tant que sampleResult
.
SELECT
UDF.sampleFunction(InputStream) AS sampleResult
INTO
output
FROM
InputStream
Types de fonctions
Azure Stream Analytics prend en charge les quatre types de fonction suivants :
- Fonctions JavaScript définies par l’utilisateur
- Agrégats JavaScript définis par l’utilisateur
- Fonctions C# définies par l’utilisateur (à l’aide de Visual Studio)
- Azure Machine Learning
Vous pouvez utiliser ces fonctions pour des scénarios tels que l’évaluation en temps réel à l’aide de modèles Machine Learning, de manipulations de chaînes, de calculs mathématiques complexes, d’encodage et de décodage de données.
Important
Les fonctions définies par l’utilisateur C# pour Azure Stream Analytics seront supprimées le 30 septembre 2024. Après cette date, il ne sera pas possible d’utiliser la fonctionnalité.
Limites
Les fonctions définies par l’utilisateur sont sans état et la valeur de retour ne peut être qu’une valeur scalaire. Vous ne pouvez pas appeler des points de terminaison REST externes à partir de ces fonctions définies par l’utilisateur, car cela impacterait probablement les performances de votre travail.
Azure Stream Analytics ne conserve pas un enregistrement de tous les appels de fonctions et des résultats retournés. Pour garantir la répétabilité (par exemple, la réexécution de votre travail à partir d’un horodatage plus ancien reproduit les mêmes résultats), n’utilisez pas de fonctions telles que Date.GetData()
ou Math.random()
, car ces fonctions ne retournent pas le même résultat pour chaque appel.
Journaux d’activité de ressources
Toutes les erreurs d’exécution sont considérées comme irrécupérables et remontées par le biais des journaux d’activité et de ressources. Il est recommandé que votre fonction gère toutes les exceptions et erreurs et retourne un résultat valide à votre requête. Cela empêche votre travail de passer à un état d’échec.
Gestion des exceptions
Toute exception pendant le traitement des données est considérée comme un échec catastrophique lors de l’utilisation de données dans Azure Stream Analytics. Les fonctions définies par l’utilisateur ont un potentiel plus élevé de lever des exceptions et de provoquer l’arrêt du traitement. Pour éviter ce problème, utilisez un bloc try-catch en JavaScript ou C# afin d’intercepter les exceptions pendant l’exécution du code. Les exceptions interceptées peuvent être journalisées et traitées sans entraîner de défaillance du système. Il est recommandé de toujours encapsuler votre code personnalisé dans un bloc try-catch pour éviter de lever des exceptions inattendues pour le moteur de traitement.
Étapes suivantes
- Fonctions JavaScript définies par l’utilisateur dans Azure Stream Analytics
- Agrégats JavaScript définis par l’utilisateur Azure Stream Analytics
- Développer des fonctions .NET Standard définies par l’utilisateur pour des travaux Azure Stream Analytics
- Intégration d’Azure Stream Analytics à Azure Machine Learning