このトピックでは、マージノードについて説明し、その作成方法とマージロジックの定義方法を解説します。また、実践的な例を用いて、スケジューリング設定とランタイムの詳細を説明します。
マージノードとは
-
マージノードは、Data Studio の論理制御ノードの一種です。上流ノードの実行ステータスを統合し、ブランチノードの下流にあるノードの依存関係やトリガーの問題を解決します。
-
現在、マージノードの結果ステータスを定義することはできません。条件が満たされると、マージノードは常に成功ステータスを報告します。これにより、下流ノードは曖昧さなくマージノードに依存できます。
たとえば、相互に排他的な 2 つのブランチ C1 と C2 を持つブランチノード C を考えます。各ブランチは、異なるロジックを使用して同じ MaxCompute テーブルに書き込みます。下流ノード B は、このテーブルの出力に依存します。これを処理するには、マージノード J を使用してブランチを統合する必要があります。次に、ノード B をマージノード J に依存させます。もしノード B を C1 と C2 の両方に直接依存させると、問題が発生します。ブランチは相互に排他的であるため、どちらか一方は常に [ブランチ未選択] のステータスになります。ノード B は、選択されなかったブランチからこのステータスを継承するため、同様に [ブランチ未選択] のステータスでスキップされます。ノードは実際には実行されず、この動作は後続のすべての下流ノードに伝播します。
前提条件
-
使用する RAM ユーザーがワークスペースに追加されていること。
RAM ユーザーを使用してタスクを開発する場合、その RAM ユーザーをメンバーとしてワークスペースに追加し、[開発] または [ワークスペース管理者] ロールを割り当てる必要があります。ワークスペース管理者ロールには必要以上の権限が含まれています。このロールを割り当てる際は注意してください。メンバーの追加とロールの割り当ての詳細については、「ワークスペースへのメンバーの追加」をご参照ください。
-
サーバーレスリソースグループがワークスペースに関連付けられていること。詳細については、「サーバーレスリソースグループの使用」ディレクトリ内のトピックをご参照ください。
-
マージノードが作成されていること。詳細については、「スケジューリングワークフローのノード作成」をご参照ください。
注意事項
マージノード機能は、DataWorks Standard Edition 以上でのみ利用可能です。DataWorks のエディションを購入またはアップグレードするには、「DataWorks のエディション別機能」をご参照ください。
ステップ 1: マージノードの開発
マージノードを作成した後、ノードの構成ページに移動してマージロジックを定義します。
-
マージロジック定義セクションで、マージしたいノードを検索して追加します。ノード出力、ノード ID、またはノード名で検索できます。
-
ノードを見つけたら、
アイコンをクリックして [マージ条件設定] セクションに追加します。説明複数のブランチノードをマージする必要がある場合は、ノードごとにこのステップを繰り返します。
-
MERGE Condition で、ブランチノードのマージ条件を設定します。
-
マージロジック条件には以下が含まれます:
-
AND:すべての上流ブランチノードが最終状態に達し (つまり、実行が終了し)、かつ、すべてが設定された実行ステータスを満たす必要があります。その後、Result で設定したステータスが現在のノードに適用されます。
-
OR:すべての上流ノードが最終状態に達し (つまり、実行が終了し)、かつ、いずれかのブランチノードが設定された実行ステータスを満たす必要があります。その後、Result で設定したステータスが現在のノードに適用されます。
-
-
ノード完了ステータスには以下が含まれます:
-
Successful:ノードが正常に実行されました。
-
Failed:ノードの実行に失敗しました。
-
[ブランチ未選択]:ノードが選択されていません。成功としてマークされますが、実際には実行されません (ドライラン)。
説明このステータスは、上流ノードがブランチノードの場合にのみ適用されます。
-
-
-
Result セクションで、現在のノードの実行ステータスを設定します。
説明現在、ノードのステータスは Successful にのみ設定できます。
例:
-
ノード
branch1とbranch2を現在のマージノードの上流ノードとして追加します。 -
ノード
Branch 1の実行ステータスを Successful、Branch Not Running、または Failed に設定します。これは、ノードBranch 1が実行を完了しさえすればよいことを意味します。 -
ノード
Branch 2の実行ステータスは、Successful または Branch Not Running に設定されます。これは、ノードBranch 2の実行が完了し、Node B が失敗していないことを意味します。 -
マージロジック条件は AND に設定されます。
現在のマージノードの Successful 実行ステータスは、ノード
Branch 1が実行を完了し、かつBranch 2が実行を完了して失敗しなかった場合にのみ有効になります。 -
-
マージノードを開発した後、ノード構成ページの右側にある Scheduling Settings をクリックして、スケジューリングプロパティを設定します。詳細については、「ノードのスケジューリングプロパティの設定」をご参照ください。
ステップ 2: ノードの公開とメンテナンス
-
スケジューリングプロパティを設定した後、マージノードを送信して本番環境に公開します。詳細については、「ノードまたはワークフローのデプロイ」をご参照ください。
-
タスクがデプロイされると、スケジューリング設定に従って定期的に実行されます。 に移動して、デプロイされた定期タスクを表示および管理します。詳細については、「オペレーションセンター入門」をご参照ください。