すべてのプロダクト
Search
ドキュメントセンター

DataWorks:マージノードの設定

最終更新日:Oct 31, 2025

このトピックでは、マージノードの目的、作成方法、およびマージロジックの定義方法について説明します。また、このトopicでは、マージノードのスケジューリングプロパティを設定し、その実行詳細を表示する方法の例も示します。

背景情報

マージノードは DataStudio の論理コントロールノードの一種です。マージノードは、その先祖ノードの実行ステータスをマージします。これにより、ブランチノードの子孫ノードの依存関係のアタッチと実行トリガーに関する問題が解決されます。

マージノードの出力ステータスは、マージ条件が満たされていれば常に成功となります。マージノードの目的は、上流のブランチノードからの複数のブランチの結果を統合することです。これにより、子孫ノードは単一の依存関係としてマージノードにアタッチできます。

たとえば、ブランチノード C には 2 つの相互排他的なブランチ C1 と C2 があります。これらのブランチは、異なるロジックを使用して同じ MaxCompute テーブルにデータを書き込みます。子孫ノード B がこの MaxCompute テーブルの出力に依存する場合、まずマージノード J を使用してブランチをマージする必要があります。次に、マージノード J をノード B の上流依存関係として設定できます。ノード B を C1 と C2 に直接アタッチすると、ブランチ条件が満たされないため、そのうちの 1 つは常にインスタンスステータスが [ブランチ未選択] になります。その結果、ノード B も [ブランチ未選択] ステータスに設定され、上流依存関係の 1 つが選択されなかったためにドライラン中にスキップされます。ノードは実行されず、このステータスはすべての子孫ノードに伝播します。

制限事項

マージノードは DataWorks Standard Edition 以降でのみ利用可能です。DataWorks の購入またはスペックアップについては、「DataWorks の各エディションの機能詳細」をご参照ください。

マージノードの作成

  1. [DataStudio] ページに移動します。

    DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、データ開発と O&M > データ開発を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発へ] をクリックします。

  2. ポインターを 新建 アイコンに移動し、[ノードを作成] > [全般] > [マージノード] を選択します。

  3. [ノードを作成] ダイアログボックスで、ノードの [名前][パス] を設定します。

  4. [確認] をクリックします。

マージロジックの定義

マージノードを作成した後、ノード設定タブを開いてマージロジックを定義します。归并节点运行逻辑

  1. マージしたい結果を持つ上流のブランチノードを追加します。これらのノードはマージノードの親ノードになります。

    [マージされたブランチを追加] セクションで、親ノードを名前、ID、または出力で検索し、添加 アイコンをクリックして追加します。

    説明

    複数のブランチノードの結果をマージするには、このステップを繰り返します。

  2. [マージ条件設定] セクションで、ブランチノードのマージ条件を設定します。

    上流のブランチノードに必要な実行ステータスを指定して、マージロジックを設定します。

    • マージロジック条件には次のものがあります。

      • AND: [実行結果設定] セクションで指定されたノードステータスは、すべての上流ブランチノードが望ましい状態 (実行完了) に達し、そのステータスが指定されたものと一致する場合にのみ有効になります。

      • OR: [実行結果設定] セクションで設定されたノードステータスは、すべての上流ノードが望ましい状態 (実行完了) に達し、いずれかのブランチノードが指定された実行ステータスを満たした場合に適用されます。

    • 考えられる実行ステータスは次のとおりです。

      • 成功: ノードは正常に実行されました。

      • 失敗: ノードの実行に失敗しました。

      • ブランチ未実行: ブランチが実行対象として選択されず、ノードはドライラン状態になります。この状態では、ノードは成功とマークされますが、タスクは実行されません。

        説明

        このステータスは、上流ノードがブランチノードの場合にのみ適用されます。

  3. [実行結果設定] セクションで、現在のマージノードの実行ステータスを設定します。

    説明

    現在、マージノードの実行ステータ [成功] にのみ設定できます。

たとえば、前の図では次のようになります。

  • ブランチノード A と B を現在のマージノードの上流依存関係として追加します。

  • ノード A に必要な実行ステータスを [成功][ブランチ未実行][失敗] に設定します。これは、結果に関係なく、ノード A が実行を完了しさえすれば、ノード A の条件が満たされることを意味します。

  • ノード B に必要な実行ステータスを [成功][ブランチ未実行] に設定します。これは、ノード B が正常に実行されるか、実行対象として選択されなかった場合にのみ、ノード B の条件が満たされることを意味します。ノード B が失敗した場合、条件は満たされません。

  • マージロジック条件を [AND] に設定します。

したがって、現在のマージノードは、ノード A が実行を完了し、かつノード B が失敗せずに実行を完了した場合にのみ [成功] に設定されます。

ノード設定ページの右側にある [スケジュール] をクリックして、マージノードのスケジューリングプロパティを設定します。詳細については、「基本プロパティの設定」をご参照ください。

マージノードの例

異なるブランチパスを作成するには、ブランチノードを複数の子孫ノードの上流依存関係として追加できます。次に、各子孫ノードについて、ブランチノードから異なる出力を選択します。たとえば、次の図に示すビジネスフローでは、[ブランチ 1][ブランチ 2] は同じブランチノードの 2 つの子孫ノードです。示例

ブランチ 1 は autotest.fenzhi121902_1 という名前の出力に依存します。依赖

ブランチ 2 は autotest.fenzhi121902_2 という名前の出力に依存します。输出

タスクの実行

[ランタイムログ] では、条件を満たして実行されるブランチの子孫ノードの実行詳細を表示できます。

[ランタイムログ] には、条件を満たさないブランチの子孫ノードがスキップされたことが示されます。

マージノードの子孫ノードは正常に実行されます。