このトピックでは、ビジネスフロー間およびワークスペース間でノードのスケジューリング依存関係を設定する方法について説明します。この方法により、下流のビジネスフローは、上流のビジネスフローが成功した後にのみ実行されるようになります。
背景情報
DataWorks では、上流ノードの出力を下流ノードの入力として使用することで、ノードの依存関係を作成できます。この機能により、ビジネスフロー間およびワークスペース間で依存関係を作成できます。この機能の詳細については、「スケジューリング依存関係の設定ガイド」をご参照ください。
ビジネスフロー間のスケジューリング依存関係の設定
ビジネスフロー間の依存関係を作成するには、下流のビジネスフロー内のノードを、上流のビジネスフロー内のノードの出力に依存させます。次の例では、複数のブランチを持つビジネスフローに対して、ビジネスフロー間の依存関係を設定する方法を示します。
仮想ノードはコントロールノードです。データを生成しないドライランノードです。仮想ノードは通常、ビジネスフローのルートノードとして使用され、全体のスケジューリング時間と実行を制御します。また、ビジネスフロー内の複数のブランチからの出力を集約するためにも使用できます。
ビジネスフローに複数のブランチがある場合は、
business_flow_end_virtual_nodeのような仮想ノードを作成します。business_flow_end_virtual_nodeを複数の上流ブランチの出力に依存させます。business_flow_end_virtual_nodeが正常に実行されると、ビジネスフロー全体が完了したことになります。
複数のブランチを持つビジネスフローでビジネスフロー間の依存関係が必要な場合は、仮想ノードを使用して上流と下流の依存関係を設定できます。次の図に例を示します。
ビジネスフロー 1 とビジネスフロー 2 の 2 つのビジネスフローを作成します。ビジネスフロー 1 はビジネスフロー 2 の上流フローです。
上流のビジネスフロー 1 で、次の仮想ノードを作成します。
business_flow_1_start_virtual_node:上流のビジネスフロー 1 の複数のブランチの開始ノード。business_flow_1_end_virtual_node:上流のビジネスフロー 1 の複数のブランチからの出力を集約する集約ノード。
下流のビジネスフロー 2 で、次の仮想ノードを作成します。
business_flow_2_start_virtual_node:下流のビジネスフロー 2 の複数のブランチの開始ノード。business_flow_2_end_virtual_node:下流のビジネスフロー 2 の複数のブランチからの出力を集約する集約ノード。
上流と下流のビジネスフローの依存関係:
business_flow_1_end_virtual_nodeの出力をbusiness_flow_2_start_virtual_nodeの入力として設定し、ビジネスフロー間のスケジューリング依存関係を作成します。
DataWorks では、上流ノードの出力を下流ノードの入力として構成することにより、依存関係を作成できます。ノード間の依存関係は、以下の 3 つの方法で構成できます:マウスによるドラッグ、手動設定、および自動解析。この例では、上流ノード business_flow_1_end_virtual_node の出力を、下流ノード business_flow_2_start_virtual_node の [上流の依存関係] 構成エリアに入力することにより、手動で依存関係を作成します。
ビジネスフローの作成については、「定期的なビジネスフローの作成」をご参照ください。
仮想ノードの作成については、「仮想ノード」をご参照ください。
スケジューリング依存関係の設定については、「同一サイクル内のスケジューリング依存関係の設定」をご参照ください。
ワークスペース間のスケジューリング依存関係の設定
DataWorks は、同一リージョン内にあるワークスペース間の依存関係をサポートしています。上流ノードの出力を下流ノードの入力として使用することで、ワークスペース間の依存関係を作成できます。たとえば、ワークスペース A のノード A の出力を、ワークスペース B のノード B の入力として追加できます。設定方法は、他のスケジューリング依存関係と同じです。詳細な手順については、「同一サイクル内のスケジューリング依存関係の設定」をご参照ください。
一部の古いワークスペースでは、標準モードのワークスペースから基本モードのワークスペースへの依存関係がサポートされていない場合があります。この問題が発生した場合は、チケットを送信して修正をリクエストしてください。