Todos los productos
Search
Centro de documentos

DataWorks:Solución de problemas y gestión de incidencias en el desarrollo de nodos

Última actualización: Sep 04, 2026

El plugin Data Asset Governance en DataWorks DataStudio detecta errores de sintaxis en tiempo real mientras edita el código y lo valida contra reglas de gobernanza al guardarlo o bajo demanda. DataWorks Copilot le ayuda a corregir los problemas detectados, lo cual mejora la calidad del código y la seguridad de los datos.

Capacidades de diagnóstico de incidencias

El diagnóstico de incidencias en el desarrollo de nodos combina dos funciones principales: el diagnóstico de sintaxis en tiempo real (LSP) y la verificación de salud del desarrollo. Estas capacidades protegen la calidad del código desde diferentes perspectivas.

Capacidad

Diagnóstico de sintaxis en tiempo real (LSP)

Verificación de salud del desarrollo

Responsabilidad principal

Verificación de sintaxis en tiempo real y análisis estático de código.

Validaciones basadas en una biblioteca de reglas para detectar problemas de estándares de datos, seguridad y rendimiento.

Momento de ejecución

Se ejecuta en tiempo real mientras edita el código.

Se ejecuta al guardar un nodo. También puede activar manualmente una verificación profunda de un solo archivo o de varios archivos por lotes.

Problemas cubiertos

Errores de sintaxis SQL, uso incorrecto de funciones y problemas similares.

Problemas detectados por la biblioteca de reglas integrada, como uso inadecuado de particiones, escrituras entre proyectos y tipos de campo JOIN no coincidentes. También admite bibliotecas de reglas personalizadas basadas en DataWorks Copilot.

Cómo corregir

Correcciones asistidas mediante DataWorks Copilot.

Sugerencias de corrección generadas por IA y Quick Fix.

Tenga en cuenta lo siguiente:

  • Si su código contiene errores de sintaxis, solo se activa el diagnóstico de sintaxis en tiempo real (LSP). Una regla de verificación de salud del desarrollo cuyo objeto es el código solo se ejecuta cuando la sintaxis es completamente correcta.

  • Un elemento de verificación con errores no impide que su código se ejecute.

Elegir un método de verificación

  • Errores de sintaxis mientras escribe: El diagnóstico de sintaxis en tiempo real (LSP) los marca al instante.

  • Reglas de gobernanza integradas: Un escaneo en vivo aplica reglas integradas eficientes al nodo activo cuando lo guarda.

  • Cobertura total de reglas: Active manualmente una verificación profunda para aplicar todas las reglas, incluidas las reglas de IA personalizadas. Puede escanear un solo archivo o un lote de archivos abiertos.

Disponibilidad regional

El diagnóstico de incidencias en el desarrollo de nodos solo está disponible en las siguientes regiones. La verificación profunda (deep check) es compatible con un subconjunto de ellas.

Región

deep check

China (Hangzhou)

Compatible

China (Shanghai)

Compatible

China (Beijing)

Compatible

China (Zhangjiakou)

Compatible

China (Ulanqab)

Compatible

China (Shenzhen)

Compatible

China (Chengdu)

Compatible

China (Hong Kong)

Compatible

Singapore

Compatible

Malaysia (Kuala Lumpur)

No compatible

Indonesia (Jakarta)

No compatible

Germany (Frankfurt)

No compatible

US (Silicon Valley)

No compatible

US (Virginia)

No compatible

Inicio rápido

El siguiente tutorial le guía a través del flujo principal para diagnosticar y corregir problemas de código en cinco minutos.

  1. Habilite la función de verificación de calidad.

    Vaya a DataStudio en DataWorks, haga clic en imageSetup en la parte inferior del panel de navegación izquierdo y seleccione la pestaña User en la página Setup. Asegúrese de que DataStudio Governance Check Module Enablement bajo Data Governance y SyntaxErrorEnable bajo LspSetting estén seleccionados. Ambas opciones están seleccionadas de forma predeterminada. Para consultar la ruta de navegación y los valores válidos de cada opción, consulte Enable configuration items.

  2. Escriba código de ejemplo que contenga problemas.

    Cree un nodo MaxCompute ODPS SQL y pegue el siguiente código de ejemplo, que contiene errores, en el editor.

    -- Example: create a table in SQL
    CREATE TABLE IF NOT EXISTS my_partitioned_table (
        id STRING,
        name STRING,
        value BIGINT
    )
    PARTITIONED BY (ds STRING)
    LIFECYCLE 365;
    -- Example: syntax error
    SELEC name FROM my_partitioned_table;
  3. Localice el problema de sintaxis LSP.

    LSP ejecuta una verificación en tiempo real y marca SELEC con un subrayado ondulado rojo para indicar un error de sintaxis. Haga clic en el icono image en la esquina inferior izquierda de la página y consulte los problemas de código del nodo en el Problems Panel que aparece.

    -- Example: syntax error
    SELEC name FROM my_partitioned_table;
  4. Corrija el problema de sintaxis LSP.

    Pase el cursor sobre la palabra clave SELEC con el subrayado ondulado rojo y haga clic en el icono de foco que aparece. DataWorks Copilot lo corregirá automáticamente a SELECT.

  5. Identifique problemas de reglas de gobernanza.

    Haga clic en Save. El editor valida el código contra los elementos de verificación habilitados en el plugin Data Asset Governance. En este ejemplo, el código activa dos reglas integradas de verificación de salud del desarrollo: Creating tables in SQL is not allowed y Partitioned table queries must include a partition.

    Si el Problems Panel no se abre automáticamente, haga clic en el icono image en la esquina inferior izquierda de la página para abrirlo.

    CREATE TABLE IF NOT EXISTS my_partitioned_table (
        id STRING,
        name STRING,
        value BIGINT
    )
    PARTITIONED BY (ds STRING)
    LIFECYCLE 365;
    SELECT name FROM my_partitioned_table;
  6. Corrija problemas de reglas de gobernanza.

    Pase el cursor sobre my_partitioned_table y haga clic en Quick Fix. Alternativamente, haga clic en el hipervínculo en el Problems Panel, espere la sugerencia de corrección y aplíquela después de comprobar que cumple con sus requisitos de optimización.

    En este ejemplo, utilice Quick Fix para corregir la segunda instrucción SQL:

    SELECT name FROM my_partitioned_table;
    SELECT name FROM my_partitioned_table WHERE ds = '20231010';
  7. Inicie una verificación profunda de un solo archivo.

    Después de corregir los problemas, haga clic en deep chec encima del editor para ejecutar una verificación profunda en el código del nodo. El editor escanea el archivo a fondo e informa los problemas restantes. Por ejemplo, si solo corrige el problema Partitioned table queries must include a partition, el escaneo reportará el problema no resuelto Creating tables in SQL is not allowed.

Funciones principales

Habilitar elementos de configuración

Ajuste la configuración del diagnóstico de incidencias para adaptarla a su flujo de trabajo de desarrollo. Todos los elementos de configuración solo tienen efecto para la cuenta actual de Alibaba Cloud.

DataStudio Governance Check Module Enablement controla la capacidad de verificación del plugin Data Asset Governance, y SyntaxErrorEnable controla el diagnóstico de sintaxis en tiempo real. Ambas opciones verifican la calidad del código en diferentes capas. Habilite ambas para obtener una cobertura completa del diagnóstico de incidencias.

  1. Vaya a la página de lista de espacios de trabajo de DataWorks, seleccione el espacio de trabajo deseado y elija Quick Start > DataStudio en la columna Actions.

  2. Haga clic en imageSetup en la parte inferior del panel de navegación izquierdo y seleccione la pestaña User en la página Setup.

    La siguiente tabla describe los elementos de configuración.

Ruta de configuración

Elemento de configuración

Propósito

Valores válidos

Valor predeterminado

Impacto

DataStudio

DataStudio Governance Check Module Enablement

Habilita el plugin Data Asset Governance.

true/false

true

Controla si se verifican problemas de estándares de datos, seguridad y rendimiento al guardar un nodo.

LspSetting

SyntaxErrorEnable

Habilita el diagnóstico de sintaxis en tiempo real.

true/false

true

Controla si los errores de sintaxis se muestran en tiempo real mientras edita el código.

LspSetting

SyntaxErrorSeverity

Establece el nivel de alerta de los errores de sintaxis.

Error,Warning,Info

Error

Controla el nivel con el que aparecen los errores de sintaxis en el editor, como un subrayado ondulado rojo (Error) o un subrayado ondulado amarillo (Warning).

Gestionar la biblioteca de reglas integradas

Las bibliotecas de reglas determinan el comportamiento de verificación del plugin Data Asset Governance y consisten en reglas integradas y personalizadas. Habilite o deshabilite una regla específica según sea necesario.

La gestión de la biblioteca de reglas solo tiene efecto para la cuenta actual de Alibaba Cloud.

  1. En el panel de navegación izquierdo de la página de DataStudio, haga clic en el icono de gobernanza image para abrir la configuración del plugin Data Asset Governance.

  2. En la sección Built-in Rule Library del panel del plugin Data Asset Governance, busque la regla de gobernanza deseada y haga clic en el interruptor junto a ella para habilitar o deshabilitar la regla.

    • Enabled (predeterminado): La regla se verifica al guardar un nodo.

    • Disabled: La regla deja de verificarse al guardar un nodo.

Biblioteca de reglas personalizadas

Cuando las reglas integradas no cubren la lógica de negocio específica o los estándares de codificación de su equipo, utilice la biblioteca de reglas personalizadas del plugin Data Asset Governance para definir nuevas reglas de verificación. Describa cada regla en lenguaje natural y proporcione ejemplos correctos e incorrectos.

Escenarios de reglas personalizadas compatibles

Dimensión de verificación

Contenido verificado

Valor principal

Alcance compatible

Texto del código

El código sin procesar en un nodo, como un script SQL.

Verifica el estilo del código, bloquea palabras clave prohibidas y aplica mejores prácticas.

Todos los tipos de tareas

Configuración de programación

Grupos de recursos, ciclos de programación, configuraciones de tiempo de espera, etc.

Mantiene el uso de recursos conforme y previene errores de configuración de programación.

Todos los tipos de tareas

Linaje del nodo

Las dependencias ascendentes y descendentes de una tarea.

Analiza el impacto en el enlace y previene riesgos cuando cambia un nodo crítico.

Todos los tipos de tareas

Análisis sintáctico del código

Las tablas, funciones y vistas sobre las que opera el código SQL.

Identifica operaciones en tablas sensibles y uso indebido de funciones, y mantiene los permisos conformes.

Todos los tipos de tareas SQL

Metadatos y linaje

Esquemas de tablas, detalles de campos y linaje a nivel de tabla.

Verifica el impacto de los cambios en los campos y mantiene consistente el modelo de datos.

MaxCompute SQL, EMR Spark SQL, EMR Hive y Hologres SQL

Métricas de gobernanza de datos

Costo, almacenamiento, puntuación de salud de salida y otros datos T+1.

Monitorea el costo y la calidad de los datos para impulsar una gobernanza continua.

Todos los tipos de tareas SQL

Procedimiento

  1. En el panel de navegación izquierdo de la página de DataStudio, haga clic en el icono de gobernanza image para abrir la configuración del plugin Data Asset Governance.

  2. En la sección Custom rule library del panel del plugin Data Asset Governance, haga clic en + para crear una regla.

    Para generar una regla de gobernanza con DataWorks Copilot, haga clic en AI Generation.

  3. Configure los campos de la regla. Este ejemplo crea la siguiente regla personalizada:

    • Rule Name: Fact table updates must include WHERE.

    • Severity: El nivel de advertencia solo le avisa durante el desarrollo, mientras que el nivel de error activa una alerta y bloquea la versión antes del despliegue. En este ejemplo, seleccione Warning.

    • Scope: Seleccione el alcance de nodos al que se aplica la regla, por ejemplo MaxCompute > MaxCompute SQL.

    • Effective scope: Se admiten los niveles user level, workspace level y tenant level. Solo un administrador de tenant puede ver el nivel de tenant, solo un administrador de espacio de trabajo puede ver el nivel de espacio de trabajo, y un miembro regular solo puede ver la opción de nivel de usuario.

    • Rule Description: Check UPDATE statements in MaxCompute SQL. If a statement updates a fact table whose name ends with _f but has no WHERE clause, flag it as a high-risk issue.

    • Valid example:

      • UPDATE my_project.order_detail_f SET status='shipped' WHERE order_id='123';

      • UPDATE my_project.order_detail_dim SET status='shipped';

    • Invalid example: UPDATE my_project.order_detail_f SET status='expired';

  4. Haga clic en Save. La regla entrará en vigor en deep check.

    Para dejar de usar una regla de gobernanza personalizada, pase el cursor sobre ella y haga clic en el icono de deshabilitar image que aparece.

deep check

Una verificación profunda (deep check) es una revisión exhaustiva y prolongada que usted activa manualmente. Aplica todas las reglas de gobernanza, incluidas las reglas de IA personalizadas. Por el contrario, el escaneo en vivo que se ejecuta al guardar un nodo solo aplica reglas integradas eficientes. Para validar su código contra el conjunto completo de reglas, ejecute una verificación profunda.

Para escanear un solo archivo

Para escanear el archivo abierto actualmente en el editor, haga clic en deep check encima del editor. El editor escanea el archivo a fondo e informa los problemas restantes.

Por ejemplo, en el código de muestra de Quick start, si solo corrige el problema Partitioned table queries must include a partition, el escaneo reportará el problema no resuelto Creating tables in SQL is not allowed.

Para escanear varios archivos por lotes

Tenga en cuenta los siguientes límites antes de iniciar un escaneo por lotes:

  • Una verificación por lotes solo cubre las pestañas de archivos abiertas actualmente en el editor. Los archivos que no están abiertos no se pueden seleccionar.

  • Puede seleccionar hasta 5 archivos.

  • Solo se puede ejecutar una verificación profunda a la vez durante una verificación por lotes.

  1. En el panel de navegación izquierdo de la página de DataStudio, haga clic en el icono de gobernanza image para abrir la configuración del plugin Data Asset Governance.

  2. En la sección deep check del panel del plugin Data Asset Governance, seleccione los archivos y las reglas para la verificación por lotes, y luego inicie la verificación profunda.

    Una vez finalizada la verificación profunda, la pestaña deep check en la parte inferior muestra los resultados. Por ejemplo, la verificación del archivo testassetrule devuelve dos advertencias: Creating tables in SQL is not allowed [my_partitioned_table] (regla ForbidUseCreateTable, línea 7, columna 28) y Partitioned table queries must include a partition (regla MissPartitionKeyFilter, línea 17, columna 18). Haga clic en el nombre de una regla para ver sus detalles.

En el panel de resultados de deep check r, haga clic en View Log en la esquina superior derecha para revisar cómo razonó el modelo de lenguaje grande sobre cada regla de verificación.

Referencia de reglas de gobernanza

Para ver los detalles de todas las reglas de verificación, haga clic en image en la esquina superior derecha de la sección deep check del panel del plugin Data Asset Governance. Las siguientes secciones describen algunas de las reglas principales integradas en el plugin Data Asset Governance.

Para conocer los tipos de nodos a los que se aplica cada regla de gobernanza, consulte Knowledge Base.

Las consultas a tablas particionadas deben incluir una partición

Riesgo: Consultar una tabla particionada de MaxCompute sin especificar una partición desencadena un escaneo completo de la tabla, lo cual consume grandes cantidades de recursos de cómputo y genera altos costos de computación.

Ejemplo de código incorrecto:

SELECT user_id, order_amount
FROM user_orders
WHERE status = 'paid';

Ejemplo de código correcto:

SELECT user_id, order_amount
FROM user_orders
WHERE status = 'paid'
AND pt = '${bizdate}'; -- Add a partition filter

Lógica de corrección automática: Quick Fix es compatible. El sistema agrega un filtro de partición a la cláusula WHERE, como AND pt = '${bizdate}'.

No se permite INSERT INTO con la propiedad de reejecución

Riesgo: Si una tarea SQL solo contiene lógica INSERT INTO y su configuración de programación permite reejecuciones, cada reejecución añade datos a la tabla destino. Esto causa fácilmente datos duplicados y compromete la precisión de los datos.

Ejemplo de código incorrecto:

-- The task property is set to "rerunnable"
INSERT INTO target_table SELECT * FROM source_table;

Ejemplo de código correcto:

-- The task property is set to "rerunnable"
INSERT OVERWRITE TABLE target_table SELECT * FROM source_table;

Lógica de corrección automática: Quick Fix es compatible. El sistema cambia INSERT INTO por INSERT OVERWRITE para que una reejecución sobrescriba los datos en lugar de añadirlos.

Los tipos de campo JOIN deben coincidir

Riesgo: En MaxCompute SQL, si los campos de clave externa de una operación JOIN tienen tipos inconsistentes, se produce una conversión implícita de tipos. Esto puede causar errores de computación y degradación del rendimiento, además de afectar la calidad de los datos.

Ejemplo de código incorrecto:

-- a.user_id is BIGINT, b.uid is STRING
SELECT * FROM table_a a JOIN table_b b ON a.user_id = b.uid;

Ejemplo de código correcto:

-- a.user_id is BIGINT, b.uid is STRING
SELECT * FROM table_a a JOIN table_b b ON a.user_id = CAST(b.uid AS BIGINT);

Lógica de corrección automática: Quick Fix es compatible. El sistema detecta la discrepancia y aplica la función CAST a uno de los campos para convertir su tipo explícitamente y hacerlo coincidir con el otro campo.

INSERT en una tabla que no pertenece al proyecto actual

Riesgo: Escribir datos desde una tarea en el proyecto A hacia una tabla en el proyecto B es una operación de alto riesgo. Rompe el aislamiento entre proyectos y puede provocar acceso no autorizado a datos y fugas de información.

Ejemplo de código incorrecto:

-- Run in a task of project_A
INSERT INTO project_B.some_table SELECT * FROM my_table;

Ejemplo de código correcto:

-- Recommended approach: let a task in the project that owns the table (project_B) write the data.
-- Avoid this operation in project_A.

Lógica de corrección automática: La corrección automática no es compatible. Ajuste el enlace de sincronización de datos según sus requisitos de negocio para que el proyecto destino escriba los datos con su propia tarea.

Las tareas automáticas en línea no deben escribir en tablas del entorno de desarrollo

Riesgo: Cuando una tarea automática en el entorno de producción escribe datos en una tabla del entorno de desarrollo, el nivel de protección de los datos disminuye y surgen riesgos de seguridad.

Ejemplo de código incorrecto:

-- Run in a task of the production environment (PROD)
INSERT OVERWRITE TABLE user_dev.temp_data SELECT * FROM user_prod.source_data;

Ejemplo de código correcto:

-- A production task must write to a table in the production environment
INSERT OVERWRITE TABLE user_prod.result_data SELECT * FROM user_prod.source_data;

Lógica de corrección automática: La corrección automática no es compatible. Modifique la tabla destino manualmente para que el flujo de datos cumpla con los estándares de aislamiento de entornos.

No se permite crear tablas en SQL

Riesgo: Usar CREATE TABLE directamente en una tarea SQL programada hace que la propiedad de la tabla sea poco clara, ya que generalmente pertenece a la cuenta de Alibaba Cloud o a la cuenta de programación. Esto aumenta los costos de gestión y crea un riesgo de eliminación accidental de datos.

Ejemplo de código incorrecto:

CREATE TABLE my_temp_table (id INT);
INSERT INTO my_temp_table VALUES (1);

Ejemplo de código correcto:

-- Create the table in the DataWorks table management module first, and then use it directly in the SQL task.
INSERT INTO my_temp_table VALUES (1);

Lógica de corrección automática: La corrección automática no es compatible. Cree la tabla en la gestión de metadatos de DataWorks o use CREATE TABLE IF NOT EXISTS para evitar errores en algunos escenarios.

Falta el verificador de parámetros de programación

Riesgo: Una tarea automática procesa datos incrementalmente por tiempo. Si la condición WHERE omite un parámetro de programación como ${bizdate}, la tarea podría procesar todos los datos diariamente o procesar un rango de fechas incorrecto. Esto causa datos faltantes o incorrectos y desperdicia grandes cantidades de recursos.

Ejemplo de código incorrecto:

-- Incorrect: the scheduling parameter is missing, so daily incremental processing is impossible
INSERT OVERWRITE TABLE users_active_today PARTITION (pt = '${bizdate}')
SELECT    user_id  FROM    login_log; -- WHERE pt = '...' is missing

Ejemplo de código correcto:

-- Correct: use the scheduling parameter as a filter to process data incrementally every day
INSERT OVERWRITE TABLE users_active_today PARTITION (pt = '${bizdate}')
SELECT    user_id FROM    login_log
WHERE    pt = '${bizdate}';

Lógica de corrección automática: La corrección automática es parcialmente compatible. El plugin resalta dónde podría faltar un filtro de parámetro de programación. Dado que la lógica de negocio varía, agregue manualmente el filtro correcto según sus requisitos.

Preguntas frecuentes

¿Estas verificaciones afectan el rendimiento del editor o el tiempo que tarda en guardarse una tarea?

El diagnóstico de sintaxis en tiempo real (LSP) tiene un impacto leve pero aceptable en el rendimiento del editor. El plugin Data Asset Governance se ejecuta al guardar un nodo, lo cual añade una pequeña cantidad de tiempo a la operación de guardado. La duración exacta depende de la complejidad del código y del número de reglas. Si nota un retraso evidente, compruebe su entorno de red o contacte al soporte técnico.

¿El diagnóstico de incidencias se factura por separado y es obligatorio DataWorks Copilot?

El diagnóstico de incidencias es una capacidad básica de DataWorks y no se cobra por separado. Sin embargo, si utiliza las sugerencias de corrección de DataWorks Copilot, se aplican las reglas de facturación descritas en Data Agent Overview. También puede corregir problemas manualmente sin Copilot.

Habilité la función, pero no se detectan los problemas en mi código. ¿Por qué?

Realice las siguientes comprobaciones:

  • Compruebe los interruptores principales: Asegúrese de que DataStudio Governance Check Module Enablement y SyntaxErrorEnable estén habilitados en Setup > User. Para consultar la ruta de navegación y los valores válidos, consulte Enable configuration items.

  • Compruebe los interruptores de reglas: Vaya a la Built-in Rule Library y asegúrese de que las reglas que desea aplicar estén habilitadas. Para obtener instrucciones, consulte Manage the built-in rule library.

  • Confirme el tipo de nodo: Compruebe si el tipo de nodo actual está dentro del alcance de la regla objetivo.

  • Compruebe la red: Verifique si alguna solicitud de red falló en las herramientas de desarrollador de su navegador. Es posible que el servicio LSP o el servicio de gobernanza no se hayan cargado debido a problemas de red.

¿Qué sucede si el servicio LSP o el servicio del plugin de gobernanza no están disponibles?

Si el servicio de backend no está disponible temporalmente, el diagnóstico de incidencias falla silenciosamente. No verá indicaciones de sintaxis en tiempo real ni problemas de gobernanza al guardar, pero la edición y el guardado de código seguirán funcionando con normalidad. Actualice la página y active las verificaciones nuevamente.

Apéndice: Glosario

Término

Descripción

Diagnóstico de sintaxis en tiempo real (LSP)

Verificación de sintaxis en tiempo real y análisis estático de código que se ejecuta mientras edita el código.

Verificación de salud del desarrollo

Validaciones basadas en una biblioteca de reglas para detectar problemas de estándares de datos, seguridad y rendimiento. Incluye escaneos en vivo que se ejecutan al guardar un nodo y verificaciones profundas que usted activa manualmente.

Live Scan

Una verificación rápida y ligera que se ejecuta en el nodo activo al guardarlo. Debido a restricciones de rendimiento actuales, solo aplica reglas integradas eficientes.

deep check

Una verificación exhaustiva y prolongada que usted activa manualmente. Aplica todas las reglas, incluidas las reglas de IA personalizadas. Puede escanear un solo archivo o un lote de hasta 5 archivos abiertos.

Custom AI Checker

Una regla de verificación que usted define en un formato específico, como lenguaje natural más ejemplos, y que es impulsada por un modelo de lenguaje grande.

Problems Panel

El área de la interfaz, nativa de VS Code o personalizada por el plugin, que muestra los problemas de código en un solo lugar.

Quick Fix

Una acción clicable que proporciona el plugin para un problema detectado, con el fin de corregir automáticamente el código o la configuración.