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

DataWorks:分岐ノード

最終更新日:Apr 22, 2025

分岐ノードは、DataStudio の論理制御ノードの一種です。分岐ノードでは、さまざまな論理条件下での分岐ロジックと分岐方向を定義できます。

注意事項

  • 分岐ノードは、DataWorks Standard Edition 以上でのみサポートされています。DataWorks のエディションについては、「DataWorks エディション間の違い」をご参照ください。

  • 分岐ノードには最大 50 個の分岐をアタッチできます。

  • ほとんどの場合、分岐ノードは代入ノードと組み合わせて使用する必要があります。代入ノードの詳細については、「代入ノードを構成する」をご参照ください。

  • 分岐ノードの子孫ノードが特定の条件を満たさない場合、子孫ノードはドライランされ、It's set condition-skip by task というメッセージが表示されます。

分岐ノードを作成する

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

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

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

    または、目的のワークフローを見つけ、ワークフロー名を右クリックして、[ノードの作成] > [一般] > [分岐ノード] を選択することもできます。

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

  4. [確認] をクリックします。
  5. 分岐ロジックを定義します。

    1. ノードの構成タブの [定義] セクションで、[分岐の追加] をクリックします。

    2. [分岐定義] ダイアログボックスで、パラメーターを構成します。次の表にパラメーターを示します。

      配置分支定义

      パラメーター

      説明

      条件

      分岐条件については、以下で説明します。

      • 分岐ノードの論理条件を定義するには、Python 比較演算子のみを使用できます。

      • ノードの実行時に式の結果が true の場合、対応する分岐条件が満たされます。

      • ノードの実行時に式を解析できない場合、分岐ノード全体が失敗します。

      • 分岐条件を定義するには、グローバル変数とノードコンテキストで定義されているパラメーターを使用できます。たとえば、${input} 変数を分岐ノードの入力パラメーターとして使用できます。

      関連付けられたノード出力

      関連付けられたノード出力については、以下で説明します。

      • ノード出力は、子ノードと分岐ノード間の依存関係を構成するために使用されます。

      • 分岐条件が満たされた場合、ノード出力に依存する子ノードが実行されます。子ノードが他のノードの出力にも依存している場合は、これらのノードのステータスも考慮されます。

      • 分岐条件が満たされない場合、ノード出力に依存する子ノードは実行されません。分岐条件が満たされないため、子ノードは Not Running 状態になります。

      説明

      分岐の説明。たとえば、${input}==1${input}>2 という分岐が定義されています。

      次の例は、[関連付けられたノード出力] を示しています。

      分岐ノードは、qqqqwwww という名前の 2 つの子ノードに関連付けられています。分岐 1 の条件が満たされた場合、qqqq ノードが実行されます。分岐 2 の条件が満たされた場合、wwww ノードが実行されます。分岐ノードを構成する際には、ビジネス要件に基づいて関連付けられたノード出力を構成できます。分岐 1 の関連付けられたノード出力が 1234 で、分岐 2 の関連付けられたノード出力が 2324 の場合、1234 と 2324 の両方が分岐ノードの出力名として使用されます。qqqq ノードは、出力名 1234 に基づいて分岐ノードに関連付ける必要があります。wwww ノードは、出力名 2324 に基づいて分岐ノードに関連付ける必要があります。

    3. [OK] をクリックします。

      分岐を追加した後、分岐を [変更] または [削除] できます。

      • [変更] をクリックして分岐を変更します。関連する依存関係も変更されます。

      • [削除] をクリックして分岐を削除します。関連する依存関係も削除されます。

  6. 右側のナビゲーションウィンドウの [プロパティ] タブをクリックし、ノードのスケジューリングプロパティを構成します。

    分岐条件が定義されると、出力名は [プロパティ] タブの [依存関係] セクションの出力名リストに自動的に追加されます。その後、出力名に基づいて子ノードを分岐ノードに関連付けることができます。

    説明
    • 子ノードは親ノードのドライランプロパティを継承します。最後のサイクルインスタンスに依存するノードを分岐として作成しないことをお勧めします。詳細については、「クロスサイクルスケジューリングの依存関係を構成する」をご参照ください。

    • ノード間に線を描いて確立された依存関係は、[プロパティ] タブには記録されません。これらの依存関係を手動で指定する必要があります。

  7. ノードをコミットしてデプロイします。

    1. 上部ツールバーの 保存 アイコンをクリックして、ノードを保存します。

    2. 上部ツールバーの 提交 アイコンをクリックして、ノードをコミットします。

    3. [送信] ダイアログボックスで、[変更の説明] パラメーターを構成します。

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

    標準モードのワークスペースを使用している場合は、ノードをコミットした後に本番環境にデプロイする必要があります。上部のナビゲーションバーで、[デプロイ] をクリックします。詳細については、「ノードをデプロイする」をご参照ください。

  8. タスクを表示します。

    1. 対応するノードの構成タブの右上隅にある [オペレーションセンター] をクリックして、本番環境のオペレーションセンターに移動します。

    2. スケジュールされたタスクを表示します。詳細については、「自動トリガーされたタスクを表示および管理する」をご参照ください。

    タスクの詳細を表示するには、DataStudio ページの上部ナビゲーションバーにある [オペレーションセンター] をクリックします。詳細については、「概要」をご参照ください。

例: 分岐ノードの子ノードを構成する

さまざまな条件下での分岐を定義するために、子ノードを分岐ノードのさまざまな出力に関連付けることができます。たとえば、次の図に示すワークフローでは、[Branch_1][Branch_2] という分岐が分岐ノードの子ノードとして定義されています。下游挂载

Branch_1 は、autotest.fenzhi121902_1 という名前の出力に依存しています。分支1

Branch_2 は、autotest.fenzhi121902_2 という名前の出力に依存しています。分支2

分岐ノードをコミットし、オペレーションセンターで実行します。この例では、Branch_1 の条件が満たされています。Branch_1 は、分岐ノードの autotest.fenzhi121902_1 出力に依存しています。次の図は、操作ログを示しています。

  • Branch_1 の条件が満たされています。この分岐の子ノードが実行されます。[ランタイムログ] タブで分岐を選択し、子ノードの実行の詳細を表示できます。

  • Branch_2 の条件が満たされていません。この分岐の子ノードはスキップされ、It's set condition-skip by task というメッセージが表示されます。[ランタイムログ] タブで分岐を選択し、関連情報を表示できます。

サポートされている Python 比較演算子

次の表では、変数 a の値が 10、変数 b の値が 20 であると仮定します。

演算子

説明

==

等しい: 2 つのオブジェクトが等しいかどうかを確認します。

(a==b) は false を返します。

!=

等しくない: 2 つのオブジェクトが等しくないかどうかを確認します。

(a!=b) は true を返します。

<>

等しくない: 2 つのオブジェクトが等しくないかどうかを確認します。

(a<>b) は true を返します。この演算子は != と似ています。

>

より大きい: x が y より大きいかどうかを確認します。

(a>b) は false を返します。

<

より小さい: x が y より小さいかどうかを確認します。返される結果は 1 または 0 です。1 は true を、0 は false を示します。結果 1 と 0 は、特殊変数 true と false と同等です。

(a<b) は true を返します。

>=

以上: x が y 以上かどうかを確認します。

(a>=b) は false を返します。

<=

以下: x が y 以下かどうかを確認します。

(a<=b) は true を返します。