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.
En este artículo se describen los problemas comunes relacionados con el desarrollo de consultas de Azure Stream Analytics, cómo solucionar problemas con las consultas y cómo corregir estos problemas. Muchos pasos de solución de problemas requieren habilitar los registros de recursos para el trabajo de Stream Analytics. Si no tiene habilitados los registros de recursos, consulte Solución de problemas de Azure Stream Analytics mediante registros de recursos.
La consulta no está produciendo la salida esperada
Examine los errores mediante la comprobación local:
- En el portal de Azure, en la pestaña de Consulta, selecciona Comprobar. Use los datos de ejemplo que descargó para probar la consulta. Examine los errores e intente corregirlos.
- También puedes probar tu consulta localmente utilizando las herramientas de Azure Stream Analytics para Visual Studio o Visual Studio Code.
Depure las consultas paso a paso localmente mediante un diagrama de trabajo con las herramientas de Azure Stream Analytics para Visual Studio Code. El diagrama de trabajo muestra cómo fluyen los datos desde fuentes de entrada, por ejemplo, Azure Event Hubs y Azure IoT Hub, a través de múltiples pasos de consulta y finalmente hacia los sumideros de salida. El script asigna cada paso de consulta a un conjunto de resultados temporal que defines usando la instrucción WITH. Consulta los datos y métricas de cada conjunto de resultados intermedios para encontrar la fuente del problema.
Si usa Marca de tiempo por, asegúrese de que los eventos tengan marcas de tiempo mayores que la hora de inicio del trabajo.
Elimine los errores comunes, como:
- Una cláusula WHERE en la consulta filtraba todos los eventos, por lo que la consulta no producía salida.
- Un error de una función CAST, que provoca que el trabajo no se realice. Para evitar errores de conversión de tipo, utilice TRY_CAST en su lugar.
- Cuando use funciones de ventana, espere la duración entera de la ventana para ver una salida de la consulta.
- La marca temporal de los eventos precede a la hora de inicio del trabajo, por lo que el trabajo elimina los eventos.
- Las condiciones JOIN no coinciden. Si no hay coincidencias, la consulta no produce salida.
Asegúrate de configurar las políticas de ordenación de eventos como se espera. Vaya a Configuración y seleccione Ordenación de eventos. El botón Probar no aplica la política cuando pruebas la consulta. Este resultado es una diferencia entre probar en el navegador y ejecutar el trabajo en producción.
Depuración mediante registros de actividad y de recursos:
- Use Registros de actividad y filtre para identificar y depurar errores.
- Use registros de recursos de trabajo para identificar y depurar errores.
Depurar consultas de forma gradual
En el procesamiento de datos en tiempo real, ayuda saber cómo se ven los datos en medio de la consulta. Para ver los datos intermedios, utiliza el diagrama de tareas en Visual Studio. Si no tienes Visual Studio, puedes dar pasos extra para generar datos intermedios.
Como Azure Stream Analytics puede leer las entradas o los pasos de un trabajo varias veces, puedes escribir instrucciones adicionales SELECT INTO. Hacerlo envía datos intermedios al almacenamiento y te permite comprobar la corrección de los datos, igual que hacen las variables de reloj cuando depuras un programa.
La siguiente consulta de ejemplo en un trabajo de Azure Stream Analytics tiene una entrada de secuencias, dos entradas de datos de referencia y una salida a Azure Table Storage. La consulta combina datos del centro de eventos y dos blobs de referencia para obtener la información de nombre y categoría:
El trabajo está en ejecución, pero no produce eventos en la salida. En el panel de Supervisión, que se muestra aquí, puedes ver que la entrada está generando datos, pero no sabes qué paso de JOIN descartó todos los eventos.
En esta situación, puedes añadir algunas sentencias extra SELECT INTO para "registrar" los resultados intermedios JOIN y los datos que se leen de la entrada.
En este ejemplo, añadimos dos nuevas "salidas temporales". Pueden ser cualquier fregado que quieras. Aquí usamos Azure Storage como ejemplo:
A continuación, puede volver a escribir la consulta del modo siguiente:
Ahora, inicie de nuevo el trabajo y deje que se ejecute durante unos minutos. Luego, consulta temp1 y temp2 con Visual Studio Cloud Explorer para generar las siguientes tablas:
Tabla temp1
Tabla temp2
Como puedes ver, temp1 y temp2 ambos tienen datos, y la name columna está correctamente poblada en temp2. Sin embargo, como la salida sigue sin datos, algo va mal:
Al muestrear los datos, puedes estar casi seguro de que el problema está en el segundo JOIN. Puede descargar los datos de referencia del blob y echar un vistazo:
Como puedes ver, el formato del GUID en estos datos de referencia es diferente al formato de la [from] columna en temp2. Por eso los datos no llegaron a output1 como se esperaba.
Corrige el formato de datos, súbelo al blob de referencia y vuelve a intentarlo:
Esta vez, los datos en la salida tienen el formato adecuado y se han rellenado según lo previsto.
El uso de recursos es alto
Asegúrese de estar aprovechando la paralelización en Azure Stream Analytics. Aprende a escalar mediante la paralelización de consultas en los trabajos de Stream Analytics configurando particiones de entrada y ajustando la definición de la consulta analítica.
Si el uso de recursos es constantemente superior al 80 % y tanto el retraso de la marca de agua como el número de eventos retrasados aumenta, considere la posibilidad de aumentar las unidades de streaming. Una alta utilización indica que el trabajo está usando casi el máximo de recursos asignados.
Obtener ayuda
Para más ayuda, pruebe nuestra página de preguntas y respuestas de Microsoft sobre Azure Stream Analytics.