このトピックでは、ワークフローまたはワークスペース間でノードの依存関係を設定する方法について説明します。ワークフロー間でノードの依存関係を設定すると、祖先ワークフローが正常に実行された後にのみ、子孫ワークフローを実行できます。
背景情報
DataWorks では、あるノードの出力を別のノードの入力として設定することで、ノード間の依存関係を確立できます。 ワークフローまたはワークスペース間でノードの依存関係を設定できます。 詳細については、「スケジューリング依存関係設定ガイド」をご参照ください。
ワークフロー間でノードの依存関係を設定する
ワークフロー内のノードの出力を別のワークフロー内のノードの入力として使用する場合、ワークフロー間の依存関係が形成されます。 このセクションでは、ワークフロー間で分岐ノードの依存関係を設定する方法について説明します。
ワークフロー内の分岐ノードの依存関係を別のワークフロー内のノードに設定する場合、ゼロロードノードを使用して現在のワークフロー内の分岐ノードの出力を集約し、ゼロロードノードの出力を他のワークフローのルートノードの入力として設定する必要があります。
ゼロロードノードは、ドライランのスケジューリングのみをサポートし、データを生成しない制御ノードです。 ほとんどの場合、ゼロロードノードはワークフローのルートノードまたは複数の分岐ノードの出力ノードとして機能します。 たとえば、ゼロロードノードを使用して、ワークフローのスケジューリング時間を決定し、他のノードをスケジューリングするかどうかを決定できます。
ワークフローに複数の分岐ノードが含まれている場合は、ゼロロードノードを作成し、分岐ノードの子孫ノードとしてゼロロードノードを指定する必要があります。 たとえば、
Workflow_end_Zero load node
の形式で名前が付けられたゼロロードノードを作成できます。 このように、ゼロロードノードは分岐ノードの出力に依存します。 ゼロロードノードが正常に実行されると、ワークフローも正常に実行されます。
次の例は、ゼロロードノードを使用してワークフロー間で分岐ノードの依存関係を設定する方法を示しています。
2 つのワークフローを作成します。ワークフロー 1 とワークフロー 2 です。次に、ワークフロー 1 をワークフロー 2 の祖先ワークフローとして設定します。
ワークフロー 1 に次のゼロロードノードを作成します。
Workflow1_start_Zero load node
: ワークフロー 1 の分岐ノードの開始ノード。Workflow1_end_Zero load node
: ワークフロー 1 の分岐ノードの出力を集約するために使用される出力ノード。
ワークフロー 2 に次のゼロロードノードを作成します。
Workflow2_start_Zero load node
: ワークフロー 2 の分岐ノードの開始ノード。Workflow 2_end_Zero load node
: ワークフロー 2 の分岐ノードの出力を集約するために使用される出力ノード。
ワークフロー 1 とワークフロー 2 の間の依存関係を設定します。
Workflow1_end_Zero load node
の出力をWorkflow2_start_Zero load node
の入力として設定します。 このようにして、ワークフロー間で分岐ノードの依存関係が設定されます。
DataWorks では、あるノードの出力を別のノードの入力として設定することで、ノード間の依存関係を確立できます。 有向非巡回グラフ (DAG) 内のノードをドラッグしてノード間の依存関係を設定する、自動解析機能を有効にする、依存関係を設定するなどの方法を使用して、依存関係を設定できます。 前の例では、Workflow1_end_Zero load node
の出力を Workflow2_start_Zero load node
の入力として設定することで、依存関係が設定されています。
ワークフローの作成方法の詳細については、「自動トリガーワークフローを作成する」をご参照ください。
ゼロロードノードの作成方法の詳細については、「ゼロロードノードを作成して使用する」をご参照ください。
ノード間の依存関係の設定方法の詳細については、「同一サイクルのスケジューリング依存関係を設定する」をご参照ください。
ワークスペース間でノードの依存関係を設定する
DataWorks では、同じリージョンにあるワークスペース間でノードの依存関係を設定することもできます。 あるワークスペース内のノードの出力を別のワークスペース内のノードの入力として設定することで、ノード間の依存関係を確立できます。 たとえば、ワークスペース A のノード A の出力をワークスペース B のノード B の入力として設定して、ノード間の依存関係を確立できます。 設定方法は、一般的なシナリオで依存関係を設定するために使用される方法と同じです。 詳細については、「同一サイクルのスケジューリング依存関係を設定する」をご参照ください。
標準モードのワークスペース内のノードは、ベーシックモードのワークスペース内のノードに依存することはできません。 この問題を解決するには、チケットを送信 してください。