DataWorks を使用して MaxCompute ジョブを定期的にスケジュールする場合、ゼロロード ノード、ブランチ ノード、マージ ノード、ループ ノードなどの DataWorks コンソール の一般的なノードを MaxCompute ノードと共に使用して、複雑なビジネス要件に対応できます。このトピックでは、一般的なノードとその使用シナリオについて説明します。
ループまたは走査ロジックを使用する複雑なジョブを実行する
DataWorks は、for-each ノードと do-while ノードの 2 種類のループ ノードを提供します。ジョブでループ ロジックを使用する必要がある場合は、for-each ノードと do-while ノードを使用できます。
For-each ノード: for-each ノードはループ走査シナリオで使用され、代入ノードと共に使用する必要があります。代入ノードは、for-each ノードの先祖ノードとして構成する必要があります。代入ノードがその出力を for-each ノードに渡した後、for-each ノードはループで出力を走査します。代入ノードの詳細については、「代入ノードを構成する」をご参照ください。
説明for-each ノードの使用方法の詳細については、「for-each ノードのロジック」をご参照ください。
Do-while ノード: do-while ノード内でワークフローを再配置し、ループ内で実行するロジックをノードに書き込み、終了ノードを構成してループを終了するかどうかを決定できます。do-while ノードを単独で使用することも、代入ノードと共に使用して、代入ノードによって渡された結果セットをループすることもできます。
do-while ノードの使用方法の詳細については、「do-while ノードのロジック」をご参照ください。説明MaxCompute 用の ODPS SQL ノードでは、ジョブのループまたは走査ロジックを記述することはできません。 for-each ノードと do-while ノードを使用して、ジョブ ロジックを実装できます。また、PyODPS ノードを使用して、ループまたは走査ロジック コードを開発することもできます。
ノード間のパラメーター割り当てを実装するジョブを実行する
DataWorks では、複数のメソッドを使用して、異なるノード間でパラメーターを透過的に渡すことができます。たとえば、代入ノードとパラメーター ノードを使用して、パラメーターを透過的に渡すことができます。ワークフロー内のすべてのノードに対して変数に値を割り当てる場合は、ワークフロー パラメーターを使用できます。
代入ノード: ノードで先祖ノードのデータを使用する場合は、代入ノードを使用してデータを渡すことができます。
説明代入ノードの使用方法の詳細については、「代入ノードを構成する」をご参照ください。
パラメーター ノード: パラメーター ノードは、コンピューティング タスクを実行しない仮想ノードです。パラメーター ノードは、ノード間でパラメーターを渡し、ワークフロー内のパラメーターを管理するために使用されます。
ノード間のパラメーター渡し
パラメーター管理
ワークフロー内のノード A が先祖ノードの出力パラメーターを取得する必要がある場合は、パラメーター ノードを作成し、それをノード A の先祖ノードおよびノード A の先祖ノードの子孫ノードとして使用できます。次に、ノード A に必要なすべてのパラメーターをパラメーター ノードに追加します。このようにして、ノード A は必要なすべてのパラメーターをパラメーター ノードから取得できます。

ワークフロー内のノードでいくつかの定数パラメーターと変数パラメーターを使用する必要がある場合は、パラメーター ノードを作成し、それをノードの先祖ノードとして使用できます。次に、ノードに必要なすべてのパラメーターをパラメーター ノードに追加します。このようにして、ノードは必要なすべてのパラメーターをパラメーター ノードから取得できます。パラメーター ノードを使用すると、ワークフローで使用されるすべてのパラメーターを一元的に管理できます。
説明パラメーター ノードの使用方法の詳細については、「パラメーター ノードを作成する」をご参照ください。
ワークフロー パラメーター: [ワークフロー パラメーター] タブで、現在のワークフロー内のすべてのノードに対して、変数に値を割り当てたり、パラメーターの値を置き換えたりできます。ワークフロー パラメーターの使用方法の詳細については、「ワークフロー パラメーターを使用する」をご参照ください。
ワークフローを管理する
DataWorks で MaxCompute ジョブを実行する場合、DataWorks のゼロロード ノードを使用してワークフローを管理できます。たとえば、ノード間の依存関係が複雑なシナリオでは、ゼロロード ノードを使用してワークフローを管理できます。
複数のワークフローがある場合は、各ワークフローの開始ノードとしてゼロロード ノードを構成することをお勧めします。このようにして、ワークフローを簡単に管理し、データ転送プロセスを明確にすることができます。
ゼロロード ノードの使用方法の詳細については、「ゼロロード ノードを作成して使用する」をご参照ください。