自動解析機能に基づいて、ワークフローのバッチ同期ノードにスケジューリング依存関係を自動的に追加することはできません。ノードが、その祖先バッチ同期ノードによって生成されたテーブルに依存している場合は、テーブルをバッチ同期ノードの出力に手動で追加する必要があります。このようにして、ノードがテーブルデータにクエリを実行すると、自動解析機能によってバッチ同期ノードをすばやく見つけることができます。
エラーメッセージ
バッチ同期ノードによって生成されたテーブルをバッチ同期ノードの出力に手動で追加しないと、システムは自動解析機能を使用してバッチ同期ノードを見つけることができません。この場合、バッチ同期ノードの出力に依存する SQL ノードをコミットすると、次の図に示すエラーメッセージが表示されます。

このエラーは、自動的に解析された上流の依存関係に基づいて、SQL ノードが依存するバッチ同期ノードをシステムが見つけることができないために発生します。詳細については、「エラー分析」をご参照ください。このエラーを防ぐために、次のいずれかの方法を使用して、バッチ同期ノードのスケジューリング依存関係を設定することをお勧めします。
方法 1:バッチ同期ノードによって生成されたテーブルをその出力に手動で追加する
上記のエラーを防ぐために、自動的に解析された上流の依存関係をバッチ同期ノードの出力に手動で追加できます。この操作は、バッチ同期ノードの[プロパティ] パネルで実行できます。次の図は例を示しています。

方法 2:バッチ同期ノードの名前を、生成されたテーブルの名前と同じにする
上記の記述に基づいて、次の情報を取得できます。
- バッチ同期ノードを作成すると、システムは、ノードに対して 出力
projectname.nodename
形式で名前が付けられた を自動的に生成します。 - SQLノードがバッチ同期ノードの生成テーブルを使用する場合、システムはSQLノードに対して依存関係のある上位ノード
projectname.tablename
形式の名前を持つ[依存関係の上位ノード] を自動的に生成します。 - エラーを防ぐため、[依存関係のある祖先ノード] の名前がバッチ同期ノードの [出力] の名前と同じであることを確認する必要があります。
説明 ノードを作成すると、システムは、ノードに対して 出力
projectname.nodename
形式で名前が付けられた [出力] を自動的に生成します。ノードの作成後にノードの名前を変更しても、[出力] の名前は変更されません。したがって、この方法は、バッチ同期ノードを作成する場合にのみ使用できます。後続の操作でノードまたはバッチ同期ノードによって生成されたテーブルの名前を変更して名前の一貫性を確保しても、このエラーは解決されません。エラー分析
次の図は、バッチ同期ノードを含むワークフローで設定されたノードとスケジューリング依存関係を示しています。
上記の操作を実行した後、バッチ同期ノードによって生成されたテーブルがバッチ同期ノードの [出力] に自動的に追加されないことに気付かないと、ワークフローでノードをコミットしたときにエラーが報告されます。エラーは、依存祖先ノードの出力名が存

ステップ番号 | 詳細ステップ | 設定済みのスケジューリング依存関係 |
1 | ワークフローの計画に基づいて、ワークフローにノードを作成します。 前の図では、仮想ノード、バッチ同期ノード、および MaxCompute ノードが作成されています。 | DataWorks でノードが作成されると、システムは各ノードに対して 2 つの [出力] を自動的に生成します。1 つは projectname.nodename 形式で名前が付けられ、もう 1 つの名前には _out というサフィックスが付きます。たとえば、前の図は、バッチ同期ノード user_1 が作成された後、システムがノードに対して次の出力を自動的に生成することを示しています。
|
2 | ワークフローの計画に基づいて線を描画してノードを接続し、ノードの依存関係を決定します。 | ノードが接続されると、システムは接続に基づいて各祖先ノードの依存関係設定を自動的に追加します。 たとえば、ノードを接続した後、前の図の MaxCompute ノード sql_1 はバッチ同期ノード user_1 の子孫ノードになります。この場合、システムは、user_1 の |
3 | 各ノードのタスクコードを開発します。 | 各ノードのタスクコードを開発すると、システムはコード内の一部の入力コマンドと出力コマンドを自動的に解析し、各ノードの [出力] または [子孫祖先ノード] を追加します。 たとえば、MaxCompute ノード sql_1 は、バッチ同期ノード user_1 によって生成された |

このエラーは、次の理由で発生します。
- バッチ同期ノード user_1 は自動解析をサポートしていません。そのため、user_1 によって生成された table_1 テーブルは、user_1 の[出力]に自動的に追加されません。これは、user_1 に
doctest.table_1
という名前の出力がないことを示しています。 - システムは、子孫ノード sql_1 用に 依存関係のある上位ノード
projectname.tablename
形式で名前が付けられた[依存関係のある祖先ノード]を自動的に追加します。この例では、依存関係のある祖先ノードの名前はdoctest.table_1
です。ただし、システムはdoctest.table_1
を user_1 の出力に追加しません。そのため、システムは user_1 の ID を見つけることができません。 - sql_1 をコミットすると、システムは sql_1 に上流の依存関係
doctest.table_1
があることを検出します。ただし、システムは上流の依存関係を祖先ノードの ID に関連付けることができず、sql_1 の依存関係のある祖先ノードの出力名が存在しないことを示すエラーを報告します。