Este tema describe la función de diagnóstico inteligente para trabajos SQL de MaxCompute. Proporciona resultados de diagnóstico y sugerencias de optimización para ayudarle a resolver errores en los trabajos o mejorar el rendimiento de las consultas, y explica cómo consultar e interpretar estos diagnósticos. Dado que el rendimiento de las consultas depende de muchos factores, el diagnóstico inteligente identifica solo ciertas anomalías y ofrece recomendaciones parciales.
Para obtener un diagnóstico de trabajos más completo y orientación sobre ajustes, consulte Logview diagnostics best practices y SQL tuning.
Límites
Actualmente, los diagnósticos solo son compatibles con trabajos SQL.
Consultar resultados y sugerencias del diagnóstico inteligente
Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.
-
En el panel de navegación izquierdo, elija .
NotaEl intervalo de tiempo predeterminado para consultar trabajos es de una hora. Ajuste este intervalo según sea necesario en función del tiempo de ejecución real de los trabajos de su proyecto.
Haga clic en la etiqueta de resultado de diagnóstico en la columna Intelligent Diagnostics del trabajo objetivo. Esto le llevará a la página Job Insights. Consulte las explicaciones detalladas del diagnóstico y las sugerencias de optimización en la pestaña Job Summary.
Descripciones de los resultados de diagnóstico
-
La columna Intelligent Diagnostics aparece vacía si se cumple alguna de las siguientes condiciones:
El trabajo se ejecutó con normalidad y no se detectaron anomalías.
El trabajo se completó el mismo día. Los resultados del diagnóstico inteligente se generan al día siguiente y se etiquetan en consecuencia.
El trabajo se ejecutó antes del 1 de noviembre de 2023.
El trabajo SQL se ejecutó en una de las siguientes regiones: China (Hong Kong), China East 2 Finance Cloud, China North 2 Finance Cloud (Invite-only), China North 2 Ali Gov Cloud 1, China South 1 Finance Cloud, Japan (Tokyo), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Germany (Frankfurt), UK (London), US (Silicon Valley), US (Virginia), UAE (Dubai) o SAU (Riyadh - Partner Region).
Para consultar diagnósticos detallados, vaya a la página Jobs y haga clic en Insights en la columna Actions de su trabajo objetivo para activar manualmente el diagnóstico.
Una etiqueta roja indica un diagnóstico de error en el trabajo. Una etiqueta naranja indica un diagnóstico de rendimiento.
Interpretar los resultados del diagnóstico inteligente
Las siguientes secciones explican el significado de los resultados del diagnóstico inteligente de trabajos SQL y sus soluciones.
Recursos insuficientes
Un trabajo se marca por recursos insuficientes si su uso de recursos de cómputo se mantiene por debajo del 95 % de la cantidad solicitada durante más de cinco minutos.
Para trabajos pay-as-you-go, el pool de recursos compartidos no permite especificar un uso exacto. Los recursos se asignan bajo demanda mediante la apropiación por parte de los usuarios. Si se ejecutan demasiados trabajos a la vez, una alta contención puede impedir que su trabajo obtenga los recursos solicitados.
Para trabajos basados en suscripción, grandes volúmenes de datos, solicitudes elevadas de recursos o una baja prioridad del trabajo pueden provocar tiempos de espera por recursos.
Vaya a la página Job Insights de su trabajo. En la pestaña Resource Consumption, review your job’s resource consumption and quota allocation at specific times para identificar la causa raíz. Luego, optimice la ejecución de tareas ajustando la prioridad del trabajo o gestionando los recursos de cómputo según sea necesario.
Desviación de datos
La desviación de datos es un problema común en el cómputo de big data. A menudo se manifiesta cuando un trabajo se queda estancado al 99 % de finalización, lo que da la impresión de que la ejecución se ha detenido. Esto ocurre cuando la distribución de los datos es desigual: algunos workers terminan rápidamente mientras que otros tardan mucho más. En la era actual de crecimiento explosivo de datos, la desviación de datos afecta gravemente la eficiencia de los programas distribuidos. Detecte este problema a tiempo, analice su causa y resuélvalo con prontitud.
MaxCompute marca un trabajo por desviación de datos si se cumple alguna de las siguientes condiciones:
El worker con mayor tiempo de ejecución tarda como mínimo tres veces el promedio de tiempo de ejecución de los workers, y dicho promedio supera los 30 segundos.
Al menos un worker procesa tres veces o más registros de entrada que el promedio de los workers.
MaxCompute proporciona los nombres de los workers (nodos) afectados para que pueda investigar y ajustar mediante LogView. Para más detalles, consulte Use Logview to view job runtime information.
Para conocer más escenarios de desviación de datos y sus soluciones, consulte Data skew tuning.
Inflación de datos
Una Fuxi Task se marca por inflación de datos si su recuento de registros de salida supera diez veces su recuento de registros de entrada.
MaxCompute proporciona el nombre de la Fuxi Task afectada para que pueda investigar y ajustar mediante LogView. Para más detalles, consulte Use Logview to view job runtime information.
Para obtener más información sobre las causas y soluciones de la inflación de datos, consulte Data bloat optimization.
Reversión de modo
Los trabajos de MaxCompute pueden ejecutarse en modo Query Acceleration (MaxQA) o en modo estándar.
Los trabajos con grandes volúmenes de datos que no devuelven resultados de consulta solo pueden usar el modo NAT. En condiciones normales, su tiempo de ejecución permanece estable.
Las consultas interactivas con pequeños volúmenes de datos suelen activar el modo Query Acceleration, que se ejecuta más rápido que el modo NAT. Sin embargo, MaxCompute no garantiza que todos los trabajos entren en el modo Query Acceleration. Si se produce una reversión al modo NAT, el tiempo de ejecución puede superar las expectativas.
Este comportamiento aplica a MCQA (Query Acceleration 1.0), que utiliza activación automática. MaxQA (Query Acceleration 2.0) requiere asignar explícitamente un grupo de cuota interactivo y no cuenta con mecanismos de activación ni reversión automática. Para más detalles, consulte Query Acceleration MaxQA User Guide.
MaxCompute determina si un trabajo experimenta un problema de reversión de modo basándose en el subestado de reejecución de la tarea. Para ejecutar el trabajo directamente en modo NAT y evitar fallos o pérdida de tiempo al intentar usar el modo de aceleración de consultas, añada set odps.service.mode=off; en la primera línea del código del trabajo. MaxQA no admite la desactivación mediante este método.
Tabla pequeña de MAPJOIN cerca del límite de memoria
Al unir una tabla grande con una tabla pequeña en MaxCompute, puede mejorar el rendimiento de las consultas si especifica explícitamente la sugerencia mapjoin en su instrucción SELECT. mapjoin carga toda la tabla pequeña en la memoria durante la fase Map. Solo funciona para tablas pequeñas, y la tabla cargada no debe exceder los 512 MB de memoria. Si MaxCompute detecta que la tabla pequeña se acerca a este límite, advierte sobre un posible riesgo de memoria en mapjoin. En este caso, considere eliminar MAPJOIN HINT o utilizar DISTRIBUTED MAPJOIN para evitar el desbordamiento de memoria y el fallo del trabajo.
Diagnóstico de mensajes de error de trabajos
Para trabajos con errores, MaxCompute compara los mensajes de error con categorías conocidas y proporciona descripciones y soluciones. Actualmente, esto cubre solo algunos errores relacionados con SQL. Para fallos sin diagnóstico disponible, consulte error codes para localizar y resolver el problema.
Si tiene preguntas o necesita ayuda, complete el formulario de solicitud de grupo de DingTalk para unirse al grupo de la comunidad de desarrolladores de MaxCompute (ID de grupo de DingTalk: 11782920) o póngase en contacto con su grupo de soporte dedicado de DingTalk.
Referencias
Para optimizar cálculos de métricas de periodos largos, consulte Optimization solution for long-period metric calculations.
Para realizar análisis de recursos a nivel de trabajo mediante la función Job Insights en la consola de MaxCompute, comprender el consumo detallado de recursos y obtener recomendaciones para reducir el tiempo de ejecución del trabajo, consulte Best practices for job-level resource analysis.