Problem description
When you commit a node, the system reports an error indicating that the output name of a dependent parent node does not exist.
As shown in the preceding figure, this error indicates that the system cannot find the ancestor node that generates the xc_ods_user_info_d_133 table using the Parent Node Output Name dependency configured for the current node.
The error Node Output Name Does Not Exist indicates that a node output name is missing from the scheduling dependency configuration. This means that no node is configured with this output name, not that the table itself does not exist. This error also occurs if a table is produced by a node but is not added as an output of that node.
Possible cause 1: No node produces this table
Possible cause
This error can occur because no node produces the table.
In most scenarios, DataWorks automatically parses code and adds the output table as the node's output. However, automatic parsing is not supported for tables that are not generated by recurring schedules. Tables that are not generated by recurring schedules include the following:
Tables uploaded from a local machine to DataWorks
Dimension tables
Tables not produced by DataWorks scheduling
Tables produced by one-time tasks
When a node runs a SELECT statement on a table that is not generated by a recurring schedule, the error occurs.
Solution
You must manually delete the dependency configurations for tables that are not generated by recurring schedules. In this example, you must delete the scheduling dependency configuration where the Parent Node Output Name is
xc_ods_user_info_d_133.For more information, see Configure dependencies for recurring schedules.
Possible cause 2: A node produces the table, but the table is not added as an output of that node
Possible cause
This error can also occur if a node produces the table, but the table is not added as an output for that node.
In most scenarios, DataWorks automatically parses code and adds the output table as the node's output. However, automatic parsing is not supported for some types of nodes. Automatic parsing cannot add scheduling dependencies for offline nodes, AnalyticDB for PostgreSQL nodes, AnalyticDB for MySQL nodes, or EMR nodes. You must manually add the output tables of these nodes as their outputs.
The error occurs when a node runs a SELECT statement on a table that is produced by one of these node types, but the table has not been manually added as an output of the producing node.
Solution
You must manually add the table as an output of the node that generates it. In this example, you must manually add
xc_ods_user_info_d_133as the Output Of This Node.For more information, see Configure dependencies for recurring schedules.
To prevent data issues from incorrect dependency configurations, DataWorks compares the inputs and outputs from the table's data lineage with those in the scheduling configuration when you commit a node. If they do not match, a prompt is displayed. For more information, see Node commit prompt: Inputs and outputs do not match code data lineage analysis.
Node dependencies are not required for tables that are not produced by recurring DataWorks schedules. You can delete these dependencies. After you delete the dependencies, a prompt is displayed when you commit the node, indicating a mismatch between the data lineage and the scheduling dependencies. Confirm that there are no other mismatches apart from the dependency that you deleted for the non-recurring table. If everything else is correct, you can force the commit.
Possible cause 3: Duplicate node output names exist
Possible cause
This issue can also be caused by multiple nodes having the same Node Output name. This can occur in two scenarios:
Multiple nodes produce the same table.
If multiple nodes produce the same table, the system cannot find a unique node that produces the table when another node runs a SELECT statement on it. This causes the error when you commit the node.
Nodes with the same name exist in the same project.
The system automatically adds two Node Outputs when a node is created. One of these outputs is named according to the
projectname.nodenamenaming convention. Therefore, if two nodes in the same project have the same name, their automatically generated Node Outputs will also have identical names. This causes the error when you commit the node.
Solution
To resolve this issue, strictly follow code development standards and recommended naming conventions:
Each table must be produced by a single node. The output table of a node must be added as an output for that node.
Ensure that node names are unique within the same project.
After you make the modifications, ensure that multiple nodes do not have the same Output Of This Node name.