このトピックでは、マージノードの定義、マージノードの作成方法、およびマージロジックの定義方法について説明します。また、マージノードの構成方法と実行方法を示すサンプル マージノードも提供します。
背景情報
マージノードは、DataStudio の論理制御ノードの一種です。マージノードは、その祖先ノードの結果をマージできます。マージノードは、分岐ノードの子ノードの出力に依存するノードのスケジューリングを容易にすることを目的としています。
マージノードのステータスを変更することはできません。マージノードは、分岐ノードの複数の子ノードの結果をマージし、ステータスを「成功」に設定します。分岐ノードの子ノードの出力に依存するノードが適切にスケジューリングされるようにするには、マージノードに依存するようにノードを構成します。
たとえば、分岐ノード C には、論理的に排他的な 2 つの分岐 C1 と C2 があります。これらの 2 つの分岐は、異なるロジックを使用して同じ MaxCompute テーブルにデータを書き込みます。ノード B は、この MaxCompute テーブルの出力に依存するとします。ノード B が期待どおりに実行されるようにするには、マージノード J を使用して分岐 C1 と C2 の結果をマージし、次にマージノード J をノード B の親ノードとして構成する必要があります。ノード B が分岐 C1 と C2 に直接依存している場合、分岐ノード C が実行されるたびに 1 つの分岐のみが分岐条件を満たすため、分岐の 1 つは実行に失敗します。この場合、ノード B とその子孫ノードはスケジュールどおりにトリガーされません。
制限事項
マージノードは、DataWorks Standard Edition 以降のエディションでのみ使用できます。 DataWorks サービスの購入方法と DataWorks エディションのアップグレード方法については、DataWorks エディション間の違いをご参照ください。
マージノードを作成する
[datastudio] ページに移動します。
DataWorks コンソールにログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションペインで、 を選択します。表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
スケジュールされたワークフローペインで、ポインターを
アイコンの上に移動し、 を選択します。
[ノードの作成] ダイアログボックスで、[名前] パラメーターと [パス] パラメーターを構成します。
[確認] をクリックします。
マージロジックを定義する
マージノードが作成されると、ノード構成タブが表示されます。ノードのマージロジックを定義します。
分岐をマージする必要がある分岐ノードを追加します。分岐ノードは、マージノードの祖先ノードになります。
[マージされた分岐] ドロップダウンリストで、ノード名、ノード ID、またはノード出力で分岐ノードを検索し、
アイコンをクリックします。
説明複数の分岐ノードの分岐をマージする必要がある場合は、この手順を繰り返して分岐ノードを 1 つずつ追加する必要があります。
[マージ条件] セクションで、分岐ノードのマージ条件を構成します。
分岐ノードのマージロジック条件と状態を構成する必要があります。
次のマージロジック条件がサポートされています。
[AND]:[結果] セクションで指定されたノードステータスは、すべての祖先分岐ノードが実行され、指定された状態になっている場合にのみ有効になります。
[OR]:[結果] セクションで指定されたノードステータスは、すべての祖先分岐ノードが実行され、祖先分岐ノードが指定された状態になっている場合に有効になります。
分岐ノードには、次の状態を指定できます。
[成功]
[失敗]
[分岐が実行されていない]
[結果] セクションで、マージノードのステータスを指定します。
説明マージノードのステータスは、[成功] にのみ設定できます。
前の図は、次の構成のマージノードを示しています。
分岐ノード A と B が、マージノードの祖先ノードとして追加されます。
ノード A には、[成功]、[分岐が実行されていない]、および [失敗] の状態が指定されています。この場合、ノード A は結果に関係なく実行されるだけで済みます。
ノード B には、[成功] と [分岐が実行されていない] の状態が指定されています。この場合、ノード B は実行される必要があり、結果は「失敗」ではありません。
マージロジック条件は [AND] に設定されています。
したがって、ノード A と B が実行され、ノード B の結果が「失敗」でない場合、マージノードの [成功] ステータスが有効になります。
ノード構成タブで、右側のナビゲーションペインの [プロパティ] タブをクリックします。マージノードのスケジューリングプロパティを構成します。詳細については、基本プロパティを構成するをご参照ください。
サンプル マージノード
子ノードを分岐ノードの異なる出力に関連付けて、異なる条件下で分岐を定義できます。たとえば、次の図に示すワークフローでは、[branch_1] 分岐と [branch_2] 分岐が分岐ノードの子ノードとして定義されています。
Branch_1 は、autotest.fenzhi121902_1 という名前の出力に依存しています。
Branch_2 は、autotest.fenzhi121902_2 という名前の出力に依存しています。
ノードを実行する
Branch_1 の条件が満たされています。この分岐の子ノードが実行されます。 [ランタイムログ] タブで分岐を選択し、子ノードの実行の詳細を表示できます。
Branch_2 の条件が満たされていません。この分岐の子ノードはスキップされます。 [ランタイムログ] タブで分岐を選択し、関連情報を表示できます。
マージノードの子ノードは期待どおりに実行されます。