Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El lenguaje de consulta similar a SQL en Azure Stream Analytics facilita la implementación de lógica de análisis en tiempo real en los datos de streaming. Stream Analytics proporciona flexibilidad adicional a través de funciones personalizadas que se invocan en la consulta. El ejemplo de código siguiente es una UDF denominada sampleFunction que acepta un parámetro, cada registro de entrada que recibe el trabajo y el resultado se escribe en la salida como sampleResult.
SELECT
UDF.sampleFunction(InputStream) AS sampleResult
INTO
output
FROM
InputStream
Tipos de funciones
Azure Stream Analytics admite los cuatro tipos de función siguientes:
- Funciones definidas por el usuario de JavaScript
- Agregados definidos por el usuario de JavaScript
- Funciones definidas por el usuario de C# (mediante Visual Studio)
- Azure Machine Learning
Puede usar estas funciones para escenarios como la puntuación en tiempo real mediante modelos de aprendizaje automático, manipulaciones de cadenas, cálculos matemáticos complejos, codificación y descodificación de datos.
Importante
Las funciones definidas por el usuario de C# para Azure Stream Analytics se retirarán el 30 de septiembre de 2024. Después de esa fecha, no será posible usar la característica.
Limitaciones
Las funciones definidas por el usuario no tienen estado y el valor devuelto solo puede ser un valor escalar. No puede llamar a puntos de conexión REST externos desde estas funciones definidas por el usuario, ya que probablemente afectará al rendimiento del trabajo.
Azure Stream Analytics no mantiene un registro de todas las invocaciones de funciones ni de los resultados devueltos. Para garantizar la repetibilidad( por ejemplo, volver a ejecutar el trabajo desde la marca de tiempo anterior produce de nuevo los mismos resultados: no use funciones como Date.GetData() o Math.random(), ya que estas funciones no devuelven el mismo resultado para cada invocación.
Registros de recursos
Los errores en tiempo de ejecución se consideran irrecuperables y se muestran a través de los registros de actividad y recursos. Se recomienda que la función controle todas las excepciones y errores y devuelva un resultado válido a la consulta. Esto impedirá que el trabajo vaya a un estado fallido.
Control de excepciones
Cualquier excepción durante el procesamiento de datos se considera un error catastrófico al consumir datos en Azure Stream Analytics. Las funciones definidas por el usuario tienen un mayor potencial para producir excepciones y hacer que el procesamiento se detenga. Para evitar este problema, use un bloque try-catch en JavaScript o C# para detectar excepciones durante la ejecución del código. Las excepciones detectadas se pueden registrar y tratar sin provocar un error del sistema. Se recomienda que siempre envuelva su código personalizado en un bloque try-catch para evitar lanzar excepciones inesperadas al motor de procesamiento.
Pasos siguientes
- Funciones definidas por el usuario de JavaScript en Azure Stream Analytics
- Agregados definidos por el usuario en JavaScript para Azure Stream Analytics
- Desarrollo de funciones definidas por el usuario de .NET Standard para trabajos de Azure Stream Analytics
- Integración de Azure Stream Analytics con Azure Machine Learning