Problem description

When I commit Node A, the system reports an error that the output name of the dependent ancestor node of Node A does not exist.The output name of the dependent ancestor node of Node A does not exist.The preceding figure is used to explain the error. The error occurs because the system cannot find the ancestor node that generates the xc_ods_user_info_d_133 table based on the output name of the dependent ancestor node configured for Node A.
Note The error indicates that the output name of a node does not exist. This does not mean that the xc_ods_user_info_d_133 table does not exist. Instead, this means that no node uses the output name of the node as an output. If the xc_ods_user_info_d_133 table exists and is generated by a node, but the system does not add the table to the output of the node, the error is also reported.

Possible cause 1: No node generates the table

  • Possible cause:

    No node generates the table.

    In most cases, the system can automatically add a table generated by a node to the output of the node by using the automatic parsing feature. However, tables generated by nodes other than auto triggered nodes do not support the feature. Nodes other than auto triggered nodes generate the following tables:
    • Tables uploaded from on-premises machines to DataWorks
    • Dimension tables
    • Tables that are not generated by nodes scheduled by DataWorks
    • Tables generated by manually triggered nodes

    If the code developed for a node contains the SELECT statement that specifies one of the preceding tables, the preceding error is reported.

  • Solution:

    You must delete the dependency that contains tables generated by nodes other than auto triggered nodes. In this example, you must delete the output name of the dependent ancestor node that contains the xc_ods_user_info_d_133 table.

    For more information about how to delete a scheduling dependency, see Configure same-cycle scheduling dependencies.

Possible cause 2: The table that is generated by a node is not added to the output of the node

  • Possible cause:

    The table is generated by a node. However, the table is not added to the output of the node.

    In most cases, the system can automatically add a table generated by a node to the output of the node based on the automatic parsing feature. However, some nodes do not support the feature. Batch synchronization nodes, AnalyticDB for PostgreSQL nodes, AnalyticDB for MySQL nodes, and EMR nodes do not support configuration of scheduling dependencies based on the automatic parsing feature. The tables generated by these nodes must be manually added to the outputs of these nodes.

    If the SELECT statement in the code of a node specifies one of the preceding tables, and the table is not added to the output of the node that generates the table, the preceding error is reported.

  • Solution:

    You must manually add the table to the output of the node that generates the table. In this example, you must manually add the xc_ods_user_info_d_133 table to the output of the node that generates the table.

    For more information about how to add a scheduling dependency, see Configure same-cycle scheduling dependencies.

To prevent data errors caused by incorrect dependency configurations, the system compares the input and output of the table data lineage with those of the scheduling configurations when you commit a node. If they are inconsistent, the system displays an error message. For more information, see When I commit a node, the system reports an error that the input and output of the node are not consistent with the data lineage in the code developed for the node. What do I do?.

You do not need to configure node dependencies for table data generated by a node that is not scheduled to run by day. If you have configured such a dependency, it can be deleted. In this case, the system displays an error message that the lineage of the table data is inconsistent with the scheduling configurations when you commit the node. If the inconsistency is caused only by the deletion, you can forcibly commit the node.

Possible cause 3: Multiple nodes have duplicate output names

  • Possible cause:
    The output names of multiple nodes are the same. This may be caused by the following reasons:
    • Multiple nodes generate the same table.

      If multiple nodes generate the same table, and the code developed for a node contains the SELECT statement that specifies the table, the system cannot find the unique node that generates the table, and the error is reported when you commit your node.

    • A workspace contains nodes that have the same name.

      When you create a node, the system automatically adds two outputs for the node. One is named in the projectname.nodename format. If a workspace contains two nodes that have the same name, the output names of these two nodes are the same. In this case, when you commit the created node, the system reports the error.

  • Solution:
    You must change the names of the nodes based on code development specifications and UI node naming suggestions.
    • A table is generated by only one node, and the table must be configured as the output of the node.
    • Each node name must be unique in a workspace.
    After you change the names of the nodes, make sure that nodes have different output names.