Síntomas
Al enviar un nodo, el sistema reporta un error que indica que el nombre de salida de un nodo antecesor dependiente no existe. En DataWorks, cuando envía un nodo, la página muestra a continuación mensaje de error: The output name test.table_1 of the dependent ancestor node for the current node does not exist. You cannot submit this node. Ensure that the ancestor node that has this output name is submitted. El código de error es 1201111368. Este error indica que el sistema no puede encontrar el nodo ascendente que genera la tabla de salida xc_ods_user_info_d_133 según la dependencia especificada en el campo Parent Node Output Name del nodo actual.
Este error indica que el nombre de salida especificado no se encuentra en la configuración de salida de ningún nodo. No significa que falte la tabla en sí. El error también puede ocurrir si la tabla existe y la genera un nodo, pero no se ha agregado como output de dicho nodo.
Causa 1: Ningún nodo genera la tabla
-
Causa
En la mayoría de los casos, DataWorks usa el análisis automático para agregar una tabla generada a la salida de un nodo. Sin embargo, el análisis automático no es compatible con tablas que no se generan periódicamente. Algunos ejemplos incluyen:
Tablas cargadas en DataWorks from su computadora local
Tablas de dimensiones
Tablas no producidas por la programación de DataWorks
Tablas producidas por nodos activados manualmente
El error ocurre cuando un nodo intenta ejecutar
SELECTsobre uno de estos tipos de tablas. -
Solución
Elimine manualmente las dependencias de programación en tablas que no se generan periódicamente. En este ejemplo, elimine la dependencia de programación where el campo Parent Node Output Name es
xc_ods_user_info_d_133.Para obtener pasos detallados sobre cómo eliminar una dependencia de programación, consulte Configure same-cycle scheduling dependencies.
Causa 2: La tabla no está registrada como salida del nodo
-
Causa
Aunque DataWorks usa el análisis automático para agregar salidas en la mayoría de los nodos, esta función no es compatible con ciertos tipos de nodo. Para tipos de nodo como sincronización por lotes, AnalyticDB for PostgreSQL, AnalyticDB for MySQL y EMR, agregue manualmente las tablas que producen como salidas.
Si un nodo descendente intenta ejecutar
SELECTsobre una tabla producida por uno de estos nodos, y la tabla no se ha agregado manualmente a la salida del nodo productor, se produce este error. -
Solución
Agregue manualmente la tabla como salida del nodo que la produce. En este ejemplo, agregue manualmente
xc_ods_user_info_d_133como output del nodo que la genera.Después de agregar la salida, configure correctamente la dependencia de programación. Para obtener instrucciones detalladas, consulte Configure same-cycle scheduling dependencies.
Para evitar problemas de datos causados por configuraciones de dependencia incorrectas, DataWorks compara las entradas y salidas del linaje de datos con las de la configuración de programación cuando envía un nodo. Si no coinciden, el sistema le muestra una advertencia. Para más información, consulte Node commit error: Input/output and data lineage mismatch.
No es necesario configurar dependencias de programación para tablas que no produce la programación diaria de DataWorks. Elimine estas dependencias. Cuando envíe el nodo después de eliminar dicha dependencia, es posible que el sistema le advierta sobre una discrepancia entre el linaje de datos y la configuración de programación. Si la única discrepancia es la dependencia que acaba de eliminar, fuerce el envío del nodo de forma segura.
Causa 3: Existen nombres de salida de nodo duplicados
-
Causa
Este problema ocurre cuando varios nodos tienen el mismo nombre de output, lo cual puede suceder en dos escenarios:
-
Varios nodos producen la misma tabla.
Si varios nodos producen la misma tabla, el sistema no puede identificar un nodo de origen único cuando otro nodo intenta ejecutar
SELECTsobre dicha tabla. Esta ambigüedad provoca que falle el envío. -
Un espacio de trabajo contiene nodos con el mismo nombre.
Cuando crea un nodo, el sistema agrega automáticamente dos outputs. Uno de ellos sigue la convención de nomenclatura
workspacename.nodename. Si dos nodos en el mismo espacio de trabajo tienen el mismo nombre, sus nombres de output generados automáticamente serán idénticos, lo que causa este error al enviar.
-
-
Solución
Para resolver esto, siga las convenciones estándar de desarrollo y nomenclatura:
Una tabla debe producirla un solo nodo, y esta tabla debe registrarse como salida del nodo.
Los nombres de los nodos deben ser únicos dentro de un espacio de trabajo.
Después de aplicar estos cambios, asegúrese de que no haya dos nodos con el mismo nombre de output.