ブランチノードは、Data Studio における制御フローノードの一種です。これを使用して、分岐ロジックを定義し、指定された条件に基づいてタスクを異なるダウンストリームブランチに振り分けることができます。
概要
ブランチノードは、Python 比較演算子を使用してアップストリームノードからの出力パラメータを評価します。この評価によって複数の条件分岐が作成され、アップストリームの結果に基づいて異なるダウンストリームノードを実行できるようになります。
前提条件
使用する RAM ユーザーがワークスペースに追加されていること。
RAM ユーザーを使用してタスクを開発する場合、RAM ユーザーをメンバーとしてワークスペースに追加し、[開発] ロールまたは [ワークスペース管理者] ロールを RAM ユーザーに割り当てる必要があります。 ワークスペース管理者ロールには、必要以上の権限があります。 ワークスペース管理者ロールを割り当てる場合は注意してください。 メンバーを追加してロールを割り当てる方法の詳細については、「ワークスペースメンバーを追加してロールを割り当てる」をご参照ください。
サーバーレス リソースグループがワークスペースに関連付けられていること。 詳細については、「サーバーレス リソースグループを使用する」ディレクトリのトピックをご参照ください。
ブランチノードを設定する前に、作成しておく必要があります。詳細については、「スケジューリングワークフローノードの作成」をご参照ください。
注意事項
ブランチノードは、DataWorks Standard Edition 以降でのみ使用できます。DataWorks のエディションと購入方法の詳細については、「DataWorks のエディション」をご参照ください。
1 つのブランチノードは、最大 50 のブランチをサポートします。
ブランチノードは通常、代入ノードと組み合わせて使用します。詳細については、「代入ノード」をご参照ください。
ダウンストリームブランチの条件が満たされない場合、そのブランチ内のタスクはドライラン状態になります。ログには
It's set condition-skip by taskのようなメッセージが記録されます。ブランチ条件では、空文字列 (
'') を使用した評価をサポートしていません。たとえば、ブランチ条件が'${tp_code}' != ''で、パラメータ値がスペースの場合、スペースを「値がある」と評価します (スペースは空文字列と等しくないため) 。そのため、ブランチが選択されます。空の値を表すには、特殊なプレースホルダーを使用することを推奨します。たとえば、パラメータのデフォルト値をtp_code='NONE'に設定し、ブランチ条件を'${tp_code}' != 'NONE'のように設定します。
ステップ 1:ブランチノードの開発
ブランチノードの設定ページに移動し、分岐ロジックを定義します。
Definition ページで、Add Branch をクリックします。
Branch Definition ダイアログボックスで、パラメータを設定します。
パラメータ
説明
[Condition]
ブランチ条件は、Python 比較演算子を使用して定義します。
実行時に式が
trueと評価された場合、ブランチ条件が満たされます。実行時に式を解析できない場合、ブランチノードインスタンス全体が失敗します。
条件内では、グローバル変数やノードコンテキストで定義されたパラメータを使用できます。たとえば、
${input}はブランチノードの入力パラメータにすることができます。
[Associated Node Output]
ノード出力は、ダウンストリームノードの依存関係を作成します。
ブランチ条件が満たされた場合、リンクされた出力に依存するダウンストリームノードが実行されます。その実行は、他のアップストリームノードのステータスにも依存します。
ブランチ条件が満たされない場合、リンクされた出力に依存するダウンストリームノードは実行されません。ノードのステータスは
Not run because branch condition not metに設定されます。
[Description]
ブランチ定義の簡単な説明です。たとえば、${input}==1 と ${input}>2 という条件を持つ 2 つのブランチを定義できます。
ダウンストリームノードを設定します。
ブランチノードのダウンストリームには、さまざまなタイプのノードを設定できます。この例では、MySQL ノードを使用します。
branch_1とbranch_2という名前の 2 つの MySQL ノードを作成し、各ノードの開発ページに移動します。MySQL ノード開発ページの右側で、 を選択し、Add Dependency をクリックして、アップストリームブランチノードとその対応する出力を選択してから、設定を保存します。
ブランチノードとそのダウンストリームノードの開発が完了したら、スケジューリングプロパティを設定して定期実行を有効にします。詳細については、「ノードのスケジューリングプロパティの設定」をご参照ください。
ステップ 2:ノードのデプロイと管理
スケジューリング設定が完了したら、ノードを本番環境にデプロイします。詳細については、「ノードとワークフローのデプロイ」をご参照ください。
タスクがデプロイされると、設定されたスケジュールに基づいて定期的に実行されます。 に移動して、デプロイされたスケジュールタスクを表示し、運用保守を実行できます。詳細については、「運用保守センターの概要」をご参照ください。
付録:Python 比較演算子
変数 a が 10、変数 b が 20 であると仮定します。
演算子 | 説明 | 例 |
== | 2 つのオブジェクトが等しいかどうかをチェックします。 |
|
!= | 2 つのオブジェクトが等しくないかどうかをチェックします。 |
|
<> | 2 つのオブジェクトが等しくないかどうかをチェックします。 |
|
> | x が y より大きいかどうかをチェックします。 |
|
< | x が y より小さいかどうかをチェックします。すべての比較演算子は、true の場合は |
|
>= | x が y 以上かどうかをチェックします。 |
|
<= | x が y 以下かどうかをチェックします。 |
|