前のサイクルへの依存関係とは、あるノードの現在のインスタンスが、前のサイクルの特定のノードのインスタンスに依存することを意味します。現在のインスタンスは、前のサイクルのインスタンスが正常に実行された後にのみ実行されます。ノードが前日に上流ノードによって生成されたデータを使用する必要がある場合や、時間単位または分単位のタスクが前の時間または分の自身のインスタンスに依存する必要がある場合に、クロスサイクル依存を設定できます。このトピックでは、クロスサイクル依存の設定方法と依存関係の種類について説明します。
注意事項
前のサイクルへの依存関係を設定する際は、以下の項目にご注意ください。
カテゴリ | 説明 | 関連情報 |
クロスサイクル依存の表示 | クロスサイクル依存は、DataWorks の有向非巡回グラフ (DAG) では破線で表示されます。 | |
クロスサイクル依存を設定した後、同一サイクル依存が必要かどうかの確認 | 依存関係を設定すると、下流ノードはすべての先祖ノードが正常に実行された後にのみ実行されます。 同一サイクル依存の自動解析機能はデフォルトで有効になっています。クロスサイクル依存を設定する場合は、同一サイクル依存も必要かどうかを確認してください。不要な場合は、自動的に解析された同一サイクル依存を削除して、下流ノードが期待どおりに実行されるようにします。 | |
複雑なシナリオでクロスサイクル依存を設定するタイミング | 一部のシナリオでは、同一サイクル依存が要件を満たさない場合、クロスサイクル依存を設定できます。 たとえば、日次ノードが時間単位ノードに依存する場合、日次ノードはデフォルトでその日のすべての時間単位ノードのインスタンスに依存します。時間単位ノードに自己依存を設定することで、日次ノードが特定のサイクルの時間単位ノードのインスタンスに依存するようにできます。 | |
ノード依存関係のプレビュー | 予期しない依存関係による本番環境でのスケジュール遅延を防ぐため、タスクを公開する前に依存関係をプレビューしてください。これにより、各サイクルのインスタンス関係が正しいことを確認できます。 | |
タスクの公開に関する説明 | クロスサイクル依存を持つ上流ノードと下流ノードの両方が本番環境に公開されていることを確認してください。公開後、その環境のオペレーションセンターで依存関係を表示できます。 |
エントリポイント
Data Studio のノード編集ページに移動します。右側のナビゲーションウィンドウで、 [スケジュール設定] をクリックします。 セクションで、ノードの依存関係を設定できます。
依存関係の種類
次の表に、サポートされている前のサイクルへの依存関係の種類を示します。
依存関係の種類 | ノード依存関係 | ビジネスシナリオ |
ノードの現在のインスタンスは、前のサイクルの自身のインスタンスの結果に依存します。現在のインスタンスは、前のサイクルのインスタンスが正常に実行された場合にのみ実行されます。 | ノードの現在のインスタンスは、前のサイクルの自身のインスタンスによって生成されたビジネスデータに依存します。 | |
ノードの現在のインスタンスは、下流ノードの前のサイクルのインスタンスの状態に依存します。現在のインスタンスは、下流ノードの前のサイクルのインスタンスが正常に実行された場合にのみ実行されます。 | ノードの現在のインスタンスは、下流ノードが前のサイクルの結果テーブル (出力テーブル) のデータを正常に処理したかどうかに依存します。 | |
ノードの現在のインスタンスは、別のノードの前のサイクルのインスタンスの結果に依存します。現在のインスタンスは、別のノードの前のサイクルのインスタンスが正常に実行された場合にのみ実行されます。 | ノードの現在のインスタンスは、論理的に別のビジネスプロセスのデータに依存しますが、ノード自体はそのデータに対する操作を実行しません。 |
前のサイクルへの依存関係:現在のノード (自己依存)
ノードの現在のインスタンスは、前のサイクルの自身のインスタンスによって生成されたビジネスデータに依存します。次の図は、依存関係の設定と結果の関係の例を示しています。
日次タスクが時間単位タスクまたは分単位タスクに依存する場合、日次タスクの実行時間は、時間単位または分単位のタスクに自己依存が設定されているかどうかによって影響を受けます。
自己依存のない時間単位または分単位のタスク
デフォルトでは、日次タスクはその日のすべての時間単位または分単位のタスクのインスタンスに依存します。その後、日次タスクはその日に時間単位または分単位のタスクによって生成されたすべてのテーブルデータを集約して処理します。
自己依存のある時間単位または分単位のタスク
日次タスクは、スケジュール時刻近接の原則に基づいて、最も近いスケジュール時刻を持つ時間単位または分単位のインスタンスにアタッチします。その日のすべての時間単位または分単位のインスタンスには依存しません。
特定の依存関係の詳細については、「付録:複雑な依存関係シナリオの概要」をご参照ください。
自己依存を持つタスクのデータ補完を行うと、データインスタンスが時系列順に連続して実行される場合があります。詳細については、「自己依存を持つタスクのデータ補完」をご参照ください。
前のサイクルへの依存関係:第 1 レベルの子ノード
ノードの現在のインスタンスは、下流ノードが前のサイクルのテーブルデータを正常に処理したかどうかに依存します。
たとえば、ノード C にはノード A とノード B の 2 つの下流ノードがあります。第 1 レベルの子ノードへの依存関係とは、ノード C が前のサイクルのノード A とノード B の結果に依存することを意味します。図では、現在のサイクルは T、前のサイクルは T-1 です。ノード C の現在のインスタンスは、前のサイクルのノード A とノード B のインスタンスが正常に実行された後にのみ実行されます。
前のサイクルへの依存関係:他のノード
現在のノードのインスタンスは、別のノードの前のサイクルのインスタンスが正常に実行された場合にのみ実行されます。
たとえば、ノード A とノード B はノード C の 2 つの下流ノードです。他のノードへの依存関係とは、ノード B が前のサイクルのノード D の結果に依存することを意味します。図では、現在のサイクルは T、前のサイクルは T-1 です。ノード B の現在のインスタンスは、前のサイクルのノード D のインスタンスが正常に実行された後にのみ実行されます。
上流ノードからのドライランプロパティの継承
この設定は通常、ブランチノードと共に使用されます。
エントリポイント
[スケジュール依存関係] セクションで、 [上流ノードのドライランプロパティをスキップ] を [はい] に設定できます。この設定により、下流ノードがこのノードの前のサイクルのドライランプロパティの影響を受けなくなります。

利用シーン
あるノードに複数の下流ノードがあるとします。タスク実行中に、一部の下流ノードがドライラン状態に設定されます。ドライランの下流ノードが前のサイクルへの自己依存で設定されている場合、そのドライランプロパティは子ノードに継承されます。これにより、ノードは継続的にドライラン状態のままになります。子ノードが上流ノードのドライランプロパティを継承しないようにするには、[スケジュール依存関係] セクションで [上流ノードのドライランプロパティをスキップ] を [はい] に設定します。
シナリオ例
Assign_Node は代入ノード、Branch_Node はブランチノード、Shell_Node1 と Shell_Node2 は Branch_Node の下流ノードであると仮定します。これらのノードはすべて日次で実行されるようにスケジュールされています。
実行時に、Shell_Node1 はドライランに設定され、Shell_Node2 は正常に実行されます。
ノード Shell_Node1 は、前のサイクルへの自己依存で設定されています。
現在のサイクル (T) で、ノード Shell_Node1 に対して生成された定期インスタンスは
Shell_Node1'と名付けられます。前のサイクル (T-1) で、ノード Shell_Node1 に対して生成された定期インスタンスは
Shell_Node1と名付けられました。
現在のエポック (T) の Shell_Node1の定期インスタンスは、前のエポック (T-1) のShell_Node1の定期インスタンスに依存して実行されます。`Shell_Node1` ノードは子孫ノードであり、先祖ノードから `dry-run` プロパティを継承するため、常にドライランを実行します。
依存関係のプレビュー
設定が完了したら、ノードの依存関係をプレビューできます。詳細については、「次のステップ:依存関係が期待どおりであることを確認」をご参照ください。