Dataphin は、定期タスクのスケジューリングサイクルを分、時、日、週、または月のいずれかのタイプに設定することをサポートしています。スケジューリングタイプが異なると、タスク実行サイクルも異なります。さらに、スケジューリングタイプが異なる定期タスクは、時間単位のタスクが日単位または週単位のタスクに依存するなど、相互依存関係を持つことができます。このトピックでは、タスク間の依存関係ポリシーについて説明します。
背景情報
スケジューリング依存関係を設定する前に、以下の情報を理解しておくことをお勧めします。
Dataphin では、定期タスクはスケジューリングサイクルに基づいて対応する定期インスタンスを生成します。たとえば、時間単位でスケジュールされたタスクは、毎日複数時間単位のインスタンスを作成します。定期タスク間に設定されたスケジューリング依存関係は、本質的にこれらのタスクが生成するインスタンス間の依存関係です。上流タスクと下流タスクのスケジューリングサイクルが異なると、生成されるインスタンス間の依存関係も異なります。
Dataphin は複数のスケジューリング依存関係シナリオをサポートしています。これらのシナリオでは、スケジュールされたタスクは ルート ノード 現在のノードの前のサイクル その他の物理/論理テーブル ノード 、、または に依存できます。
インスタンスの起動条件
インスタンスが依存するすべての 上流インスタンス が正常に実行されている必要があります。つまり、実行ノードが スケジュール時間待機中 または スケジュールリソース待機中 ステータスに変わります。インスタンスが スケジュールされた実行時間 に到達し、 スケジュールリソースが割り当てられ 、 システムがスロットルされていない 場合、実行ノードは 実行中 ステータスに変わり、タスクを実行します。インスタンスがトリガーされたノードである場合、 外部トリガーリクエストを受信している 必要もあります。
上流の依存インスタンスが完了していない場合、下流インスタンスはスケジュールどおりに開始されません。実行前に上流の依存インスタンスが完了するまで待機する必要があります。これは、スケジュールされた実行時間は計画された時間で、実際の実行時間ではありません ことを示しています。
定期タスクは、毎晩 23:00 に翌日に必要な定期インスタンスを自動的に生成します。タスクのスケジューリングサイクルで実行されるインスタンスがない場合、システムはデフォルトでドライランインスタンスを生成し、成功としてマークします。たとえば、月次スケジュールタスクが毎月 2 日の 13:00:00 に設定されている場合、システムは 2 日以外の日には毎日ドライランインスタンスを生成し、成功としてマークします。
概要
スケジューリング依存関係を設定する場合、依存関係ダイアログボックス内の ノード依存関係サイクルプレビュー セクションでプレビューできます。詳細については、「オフラインタスクのスケジューリング依存関係を設定する」をご参照ください。
ノード依存関係サイクルプレビューのブロックとその説明は次のとおりです。

ブロック | 説明 |
① | 現在のノードのインスタンスリスト。リスト内のインスタンスをクリックして選択したインスタンスを切り替えることができ、選択したインスタンスは青色で強調表示されます。 |
② | 選択した上流ノードのインスタンスリスト。現在のノードの選択したインスタンスが依存するインスタンスは青色で強調表示されます。 |
③ | 右側の選択したインスタンスと左側のインスタンス間の接続線。 |
依存関係シナリオ
さまざまな定期タスクの詳細な依存関係シナリオとルールは次のとおりです。
説明 ノードのスケジュール時間が先祖ノードのスケジュール時間よりも早い場合、ノードはスケジュールされた時間に実行されません。先祖ノードが完了した後にのみ、実行するようにスケジュールできます。
ルート ノードに依存するタスク
タスクの上流依存関係としてルートノードを使用する場合、依存関係サイクルとポリシーの設定はサポートされていません。ルートノードは、システムによって正常に実行されたノードと見なされます。業務時間がタスクのスケジュールされた実行時間に達し、システムが スケジューリング リソースが割り当てられました 場合、タスクは正常に実行され、ルートノードは下流ノードをブロックしません。
現在のノードの前のサイクルに依存するタスク物理/論理テーブル ノード
タスクが現在のノードの前のサイクルまたは物理/論理テーブルノードに依存する場合、依存関係サイクルとポリシーの設定がサポートされます。
依存関係サイクル : 現在のサイクル(今日)、前のサイクル(昨日)、過去 N 日間、過去 24 時間 が含まれます。
説明 現在のノードの前のサイクルは、現在のサイクルへの依存関係をサポートしていません。つまり、現在のノードは同じサイクルに依存できません。
依存関係ポリシー: すべてのインスタンス、最初のインスタンス、最後のインスタンス、次に最も近いインスタンス、前に最も近いインスタンス が含まれます。次の例では、時間単位のタスクに依存する時間単位のスケジュールされたタスクを使用して、さまざまな依存関係ポリシーの実行ロジックを説明します。
依存関係サイクル | 依存関係ポリシー |
現在のサイクル(今日) | 現在のサイクル(今日)が依存関係サイクルである場合、さまざまな依存関係ポリシーが依存するインスタンスの詳細は次のとおりです。 すべてのインスタンス すべてのインスタンスが必要な場合、依存する後続ノードが正常に実行されるためには、現在のサイクル(今日)の依存タスクのすべてのインスタンスが正常に実行されている必要があります。たとえば、当日の業務日が 2024-03-02 の場合、現在のサイクル(今日)の依存タスクは 2024-03-02 です。現在のタスクインスタンスノードの実行は、依存ノード 2024-03-02 のすべてのインスタンスに依存します。2024-03-02 のすべての依存インスタンスが正常に実行された場合、現在のタスク 2024-03-02 のすべてのインスタンスノードは正常に実行できます。依存ノード 2024-03-02 のインスタンスが 1 つでも正常に実行されない場合、現在のタスク 2024-03-02 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 最初のインスタンス 最初のインスタンスが必要な場合、現在のサイクル(今日)の依存タスクの最初のインスタンスが正常に実行されていれば、依存する後続ノードは正常に実行できます。たとえば、当日の業務日が 2024-03-02 の場合、現在のサイクル(今日)は 2024-03-02 です。現在のタスク 2024-03-02 のインスタンスノードの実行は、依存ノード 2024-03-02 の最初のインスタンスに依存します。依存ノード 2024-03-02 の最初のインスタンスが正常に実行された場合、現在のタスク 2024-03-02 のすべてのインスタンスノードは正常に実行できます。依存ノード 2024-03-02 の最初のインスタンスが正常に実行されない場合、現在のタスク 2024-03-02 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
最後のインスタンス 最後のインスタンスが必要な場合、現在のサイクル(今日)の依存タスクの最後のインスタンスが正常に実行されていれば、依存する後続ノードは正常に実行できます。たとえば、当日の業務日が 2024-03-02 の場合、現在のサイクル(今日)は 2024-03-02 です。現在のタスク 2024-03-02 のインスタンスノードの実行は、依存ノード 2024-03-02 の最後のインスタンスに依存します。依存ノード 2024-03-02 の最後のインスタンスが正常に実行された場合、現在のタスク 2024-03-02 のすべてのインスタンスノードは正常に実行できます。依存ノード 2024-03-02 の最後のインスタンスが正常に実行されない場合、現在のタスク 2024-03-02 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 次に近いインスタンス 選択した間隔内で、現在のインスタンスの実行時間より後の最初のインスタンス A 。インスタンス A が存在しない場合は、最後のインスタンスが選択されます。 たとえば、当日の業務日が 2024-03-02 の場合、現在のサイクル(今日)は 2024-03-02 です。業務日が 2024-03-02 でスケジュール時間が 13:05:00 のタスクインスタンスノードの場合、次に最も近いインスタンスは 2024-03-02 の 14:00:00 のスケジュール時間を持つインスタンスです。これは、現在のタスク 2024-03-02 の 13:05:00 インスタンスノードが、現在のサイクル(今日)の依存ノード 14:00:00 のインスタンスに依存することを意味します。業務日が 2024-03-02 でスケジュール時間が 13:00:00 のタスクインスタンスノードの場合、次に最も近いインスタンスは 2024-03-02 の 13:00:00 のスケジュール時間を持つインスタンスです。これは、現在のタスク 2024-03-02 の 13:00:00 インスタンスノードが、現在のサイクル(今日)の依存ノード 13:00:00 のインスタンスに依存することを意味します。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。  
最も近い過去のインスタンス 選択した間隔内で、スケジュールされた実行時間が現在のタスクのスケジュールされた実行時間に最も近いインスタンス。現在のタスクのスケジュールされた実行時間よりも前である最後のインスタンスが優先されます。 たとえば、当日の業務日が 2024-03-02 の場合、現在のサイクル(今日)は 2024-03-02 です。業務日が 2024-03-02 でスケジュール時間が 13:05:00 のタスクインスタンスノードの場合、前に最も近いインスタンスは 2024-03-02 の 13:00:00 のスケジュール時間を持つインスタンスです。これは、現在のタスク 2024-03-02 の 13:05:00 インスタンスノードが、現在のサイクル(今日)の依存ノード 13:00:00 のインスタンスに依存することを意味します。業務日が 2024-03-02 でスケジュール時間が 13:00:00 のタスクインスタンスノードの場合、前に最も近いインスタンスは 2024-03-02 の 13:00:00 のスケジュール時間を持つインスタンスです。これは、現在のタスク 2024-03-02 の 13:00:00 インスタンスノードが、現在のサイクル(今日)の依存ノード 13:00:00 のインスタンスに依存することを意味します。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
|
前サイクル(昨日) | 前のサイクル(昨日)が依存関係サイクルである場合、さまざまな依存関係ポリシーが依存するインスタンスの詳細は次のとおりです。 すべてのインスタンス すべてのインスタンスが必要な場合、依存する後続ノードが正常に実行されるためには、前のサイクル(昨日)のすべてのインスタンスが正常に実行されている必要があります。たとえば、当日の業務日が 2024-03-02 の場合、前のサイクル(昨日)は 2024-03-01 です。2024-03-02 のインスタンスノードの実行は、2024-03-01 のすべてのインスタンスに依存します。2024-03-01 のすべてのインスタンスが正常に実行された場合、2024-03-02 のすべてのインスタンスノードは正常に実行できます。2024-03-01 のインスタンスが 1 つでも正常に実行されない場合、2024-03-02 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
最初のインスタンス 最初のインスタンスが必要な場合、前のサイクル(昨日)の最初のインスタンスが正常に実行されていれば、依存する後続ノードは正常に実行できます。たとえば、当日の業務日が 2024-03-02 の場合、前のサイクル(昨日)は 2024-03-01 です。2024-03-02 のインスタンスノードの実行は、2024-03-01 の最初のインスタンスに依存します。2024-03-01 の最初のインスタンスが正常に実行された場合、2024-03-02 のすべてのインスタンスノードは正常に実行できます。2024-03-01 の最初のインスタンスが正常に実行されない場合、2024-03-02 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
最後のインスタンス 最後のインスタンスが必要な場合、前のサイクル(昨日)の最後のインスタンスが正常に実行されていれば、依存する後続ノードは正常に実行できます。たとえば、当日の業務日が 2024-03-02 の場合、前のサイクル(昨日)は 2024-03-01 です。2024-03-02 のインスタンスノードの実行は、2024-03-01 の最後のインスタンスに依存します。2024-03-01 の最後のインスタンスが正常に実行された場合、2024-03-02 のすべてのインスタンスノードは正常に実行できます。2024-03-01 の最後のインスタンスが正常に実行されない場合、2024-03-02 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 次に近いインスタンス 選択した間隔内で、現在のインスタンスの実行時間よりも後の最初のインスタンス A 。インスタンス A が存在しない場合は、最後のインスタンスが選択されます。 たとえば、当日の業務日が 2024-03-02 の場合、前のサイクル(昨日)は 2024-03-01 です。業務日が 2024-03-02 でスケジュール時間が 13:00:00 のタスクインスタンスノードの場合、次に最も近いインスタンスは業務日が 2024-03-01 でスケジュール時間が 13:00:00 のインスタンスです。これは、現在のタスク 2024-03-02 の 13:00:00 インスタンスノードが、前のサイクル(昨日)の依存ノード 23:00:00 のインスタンスに依存することを意味します。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 最も近い過去のインスタンス 選択した間隔内で、スケジュールされた実行時間が現在のタスクのスケジュールされた実行時間に最も近いインスタンス。現在のタスクのスケジュールされた実行時間よりも前である最後のインスタンスが優先されます。 たとえば、当日の業務日が 2024-03-02 の場合、前のサイクル(昨日)は 2024-03-01 です。業務日が 2024-03-02 でスケジュール時間が 13:00:00 のタスクインスタンスノードの場合、前に最も近いインスタンスは業務日が 2024-03-01 でスケジュール時間が 13:00:00 のインスタンスです。これは、現在のタスク 2024-03-02 の 13:00:00 インスタンスノードが、前のサイクル(昨日)の依存ノード 23:00:00 のインスタンスに依存することを意味します。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。
|
過去 N 日間 | 依存サイクルが過去 N 日間の場合、さまざまな依存ポリシーの実行ロジックは異なります。次の例では、理解しやすい 過去 2 日間 を使用して、さまざまな依存ポリシーが依存するインスタンスについて、次のように説明します。 すべてのインスタンス すべてのインスタンスが必要な場合、依存する後続ノードが正常に実行されるためには、過去 2 日間のすべてのインスタンスが正常に実行されている必要があります。たとえば、当日の業務日が 2024-03-04 の場合、過去 2 日間は 2024-03-02 です。2024-03-04 のインスタンスノードの実行は、2024-03-02 のすべてのインスタンスに依存します。2024-03-02 のすべてのインスタンスが正常に実行された場合、2024-03-04 のすべてのインスタンスノードは正常に実行できます。2024-03-02 のインスタンスが 1 つでも正常に実行されない場合、2024-03-04 のインスタンスノードは正常に実行できません。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
最初のインスタンス 最初のインスタンスが必要な場合、過去 2 日間の最初のインスタンスが正常に実行されていれば、依存する後続ノードは正常に実行できます。たとえば、当日の業務日が 2024-03-04 の場合、過去 2 日間は 2024-03-02 です。2024-03-04 のインスタンスノードの実行は、2024-03-02 の最初のインスタンスに依存します。2024-03-02 の最初のインスタンスが正常に実行された場合、2024-03-04 のすべてのインスタンスノードは正常に実行できます。2024-03-02 の最初のインスタンスが正常に実行されない場合、2024-03-04 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 最後のインスタンス 最後のインスタンスが必要な場合、過去 2 日間の最後のインスタンスが正常に実行されていれば、依存する後続ノードは正常に実行できます。たとえば、当日の業務日が 2024-03-04 の場合、過去 2 日間は 2024-03-02 です。2024-03-04 のインスタンスノードの実行は、2024-03-02 の最後のインスタンスに依存します。2024-03-02 の最後のインスタンスが正常に実行された場合、2024-03-04 のすべてのインスタンスノードは正常に実行できます。2024-03-02 の最後のインスタンスが正常に実行されない場合、2024-03-04 のインスタンスノードは正常に実行できません。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
次に近いインスタンス 選択した間隔内で、現在のインスタンスの実行時間より後の最初のインスタンス A 。インスタンス A が存在しない場合は、最後のインスタンスが選択されます。 たとえば、当日の業務日が 2024-03-04 の場合、過去 2 日間は 2024-03-02 です。業務日が 2024-03-04 でスケジュール時間が 13:00:00 のタスクインスタンスノードの場合、次に最も近いインスタンスは業務日が 2024-03-02 でスケジュール時間が 13:00:00 のインスタンスです。これは、現在のタスク 2024-03-04 の 13:00:00 インスタンスノードが、過去 2 日間の依存ノード 13:00:00 のインスタンスに依存することを意味します。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
最も近い過去のインスタンス 選択した間隔内で、スケジュールされた実行時間が現在のタスクのスケジュールされた実行時間に最も近いインスタンス。現在のタスクのスケジュールされた実行時間よりも前である最後のインスタンスが優先されます。 たとえば、当日の業務日が 2024-03-04 の場合、過去 2 日間は 2024-03-02 です。業務日が 2024-03-04 でスケジュール時間が 13:00:00 のタスクインスタンスノードの場合、前に最も近いインスタンスは業務日が 2024-03-02 でスケジュール時間が 13:00:00 のインスタンスです。これは、現在のタスク 2024-03-04 の 13:00:00 インスタンスノードが、過去 2 日間の依存ノード 13:00:00 のインスタンスに依存することを意味します。他のノードも同じロジックに従います。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。
|
過去 24 時間 | 過去 24 時間 が依存関係サイクルである場合、さまざまな依存関係ポリシーが依存するインスタンスの詳細は次のとおりです。 すべてのインスタンス すべてのインスタンスが必要な場合、現在実行中のノードが正常に実行されるためには、現在実行中のノードの 24 時間以内(過去 24 時間)のすべての依存インスタンスが正常に実行されている必要があります。たとえば、当日の業務日が 2024-03-04 の場合、13:00:00 インスタンスの 24 時間以内の依存インスタンスには、2024-03-03 の 13:00:00、14:00:00、15:00:00 が含まれます。14:00:00 インスタンスの 24 時間以内の依存インスタンスには、2024-03-03 の 14:00:00、15:00:00 が含まれます。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 
最初のインスタンス 最初のインスタンスが必要な場合、現在実行中のノードが正常に実行されるためには、現在実行中のノードの 24 時間以内(過去 24 時間)の最初の依存インスタンスが正常に実行されている必要があります。たとえば、当日の業務日が 2024-03-04 の場合、13:00:00 インスタンスの 24 時間以内の依存インスタンスには、2024-03-03 の 13:00:00、14:00:00、15:00:00 が含まれます。この範囲内の最初のインスタンスは 13:00:00 です。14:00:00 インスタンスの 24 時間以内の依存インスタンスには、2024-03-03 の 14:00:00、15:00:00 が含まれます。この範囲内の最初のインスタンスは 14:00:00 です。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 最後のインスタンス 最後のインスタンスが必要な場合、現在実行中のノードが正常に実行されるためには、現在実行中のノードの 24 時間以内(過去 24 時間)の最後の依存インスタンスが正常に実行されている必要があります。たとえば、当日の業務日が 2024-03-04 で、現在のスケジューリングインスタンス時間が 13:00:00 の場合、 24 時間以内の依存インスタンスの範囲は [2024-03-03 13:00 ~ 2024-03-04 13:00 ) です。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。 次に近いインスタンス 選択した間隔内で、現在のインスタンスの実行時間より後の最初のインスタンス A 。インスタンス A が存在しない場合は、最後のインスタンスが選択されます。 たとえば、当日の業務日が 2024-03-04 で、現在のインスタンスのスケジュール時間が 2024-03-04 13:00 の場合、次に最も近いインスタンスの範囲は [2024-03-03 13:00 ~ 2024-03-04 13:00 ) です。実際の依存インスタンスノードは 2024-03-04 12:00 です。現在のインスタンスのスケジュール時間が 2024-03-04 13:05 の場合、次に最も近いインスタンスの範囲は [2024-03-03 13:05 ~ 2024-03-04 13:05 ) です。実際の依存インスタンスノードは 2024-03-04 13:00 です。 スケジューリング依存関係を設定する場合、ノード依存関係サイクルプレビューの例は次のとおりです。  
最も近い過去のインスタンス 選択した間隔内で、スケジュールされた実行時間が現在のタスクのスケジュールされた実行時間に最も近いインスタンス。現在のタスクのスケジュールされた実行時間よりも前である最後のインスタンスが優先されます。 たとえば、当日の業務日が 2024-03-04 で、現在のインスタンスのスケジュール時間が 2024-03-04 13:00 の場合、前に最も近いインスタンスの範囲は [2024-03-03 13:00 ~ 2024-03-04 13:00 ) です。実際の依存インスタンスノードは 2024-03-04 12:00 です。現在のインスタンスのスケジュール時間が 2024-03-04 13:05 の場合、前に最も近いインスタンスの範囲は [2024-03-03 13:05 ~ 2024-03-04 13:05 ) です。実際の依存インスタンスノードは 2024-03-04 13:00 です。 
|