ノードを本番環境にデプロイした後、すぐにスケジューリングインスタンスを生成し、その構成に従って自動的に実行させたい場合は、ノードのインスタンス生成モードを [デプロイ後即時] に構成できます。
背景
ノードがデプロイされると、オペレーションセンターで最新のタスク構成を表示できます。DataWorks は、毎晩 定期タスク のノード構成に基づいて、翌日の 定期インスタンス を生成します。ただし、ノードが新規作成または更新され、当日に本番環境にデプロイされた場合、定期インスタンスが有効になる時間や依存関係が更新される時間は、選択したインスタンス生成モードによって異なります。
DataWorks では、インスタンス生成モードの 翌日 と デプロイメント直後 という 2 つのオプションを使用して、インスタンスを即時有効にするかどうかをコントロールできます。
翌日: ノードの作成および更新操作は、翌日に自動トリガーされたインスタンスに反映されます。タスクを本番環境にデプロイした直後に実行する必要がある場合、そのタスクに対して データバックフィル 操作を実行できます。
デプロイメント直後:ノードの作成および更新操作は即時に有効になりますが、ノードがデプロイされてから実行可能なインスタンスが実際に生成されるまでには時間差があります。これは、タスク実行シナリオによって影響が異なります。詳細については、「即時インスタンス生成の一般的なシナリオ」をご参照ください。
注意事項
ワークフロー内のノードは、デプロイ後の即時インスタンス生成の個別構成をサポートしていません。このオプションは、ワークフロー編集ページのスケジューリング構成でワークフロー全体に対してのみ構成できます。
スケジューリング構成でインスタンス生成に [翌日] または [デプロイ後即時] のどちらを選択したかに関係なく、毎日 23:30 から 24:00 までの期間は、翌日のすべての定期インスタンスを生成するために予約されています。この時間帯にデプロイされたタスクは、対応するインスタンスが生成されるまで 3 日目まで待つ必要があります。
上流タスクのインスタンス生成モードが不整合であると、孤立ノードが発生する可能性があります。
即時インスタンス生成の時間差: インスタンスの変更によるタスク実行の例外を防ぐため、デプロイ後の即時インスタンス生成には 10 分の時間差があります。つまり、タスクが最新の構成に従って実行されるためには、スケジュールされた時刻がデプロイ時刻より少なくとも 10 分後である必要があります。
即時インスタンス生成の有効範囲: すべての変更がすぐに有効になるわけではありません。たとえば、ノードに関連付けられているデータソースインスタンスを変更し、即時インスタンス生成を構成してデプロイした場合、これは当日の既存のインスタンスには影響しません。当日の定期インスタンスは、変更前のデータソースインスタンスを使用して引き続き実行されます。
説明最新の構成を持つ定期タスクに対して データバックフィル 操作を実行できます。データバックフィルは、最新のタスク構成に従って実行されます。
即時インスタンス生成の説明
デプロイ後の即時インスタンス生成は、将来の時間帯にスケジュールされたタスクにのみ適用されます。具体的には、タスクのスケジューリング時刻がデプロイ時刻より後である場合にのみ、インスタンスは正常に実行されます。
定期インスタンスは新しいタスクが作成された日に生成されますが、スケジューリング時刻が将来の時間帯にあるインスタンスのみが正常に実行されます。
ノードのスケジューリング時刻を更新する際、スケジューリング時刻が過去の場合、インスタンスは生成されません。スケジューリング時刻が将来の時間帯にある場合、新しい構成に従って新しいインスタンスが生成され、更新前のインスタンスが置き換えられます。
説明即時インスタンス生成が正しく機能するためには、スケジューリング時刻がノードのデプロイ時刻より少なくとも 10 分後である必要があります。
通常実行期間内のインスタンススケジューリング時刻
シナリオ 1: 新規作成されたノードが当日に実際の実行定期インスタンスを生成する場合、インスタンスのスケジューリング時刻がノードのデプロイ時刻およびインスタンスの生成時刻に対して将来であり、これらの 2 つの時点の差が 10 分を超える場合、インスタンスは正常にスケジューリングされます。詳細については、「新規作成ノードの即時インスタンス生成機能を構成する」をご参照ください。
シナリオ 2: ノードの構成を更新した後、インスタンスのスケジューリング時刻がノードのデプロイ時刻およびインスタンスの生成時刻に対して将来であり、これらの 2 つの時点の差が 10 分を超える場合、インスタンスは正常にスケジューリングされます。スケジューリングされたインスタンスは更新されたインスタンスになります。詳細については、「デプロイ済みタスクのスケジューリングサイクルを更新する」をご参照ください。
シナリオ 4: タスクのスケジューリング時刻を変更した場合の下流依存関係への影響。
変更されたインスタンスのスケジューリング時刻が、ノードのデプロイ時刻およびインスタンスの生成時刻に対して将来であり、これらの 2 つの時点の差が 10 分を超える場合、インスタンスは正常にスケジューリングされます。まだ実行されていない下流インスタンスは、変更後の新しいインスタンスに依存します。詳細については、「タスクのスケジューリング時刻を変更した場合の下流依存関係への影響」をご参照ください。
変更されたインスタンスのスケジューリング時刻が、ノードのデプロイ時刻およびインスタンスの生成時刻に対して過去である場合、ドライランインスタンスが生成されます。まだ実行されていない下流インスタンスは 孤立ノード になります。詳細については、「上流タスクと下流タスク間のインスタンス生成モードの不整合」をご参照ください。
本番ノードのスケジューリング構成を変更する際には、この機能を使用しないことをお勧めします。この機能は、依存関係の変更、依存関係の混乱、インスタンスの置換、インスタンスの削除などの問題を引き起こし、当日の依存関係を複雑にする可能性があります。ただし、タスクの依存関係は 2 日目には正常に戻ります。
ドライラン期間中のインスタンススケジューリング時刻
スケジューリング時刻がノードのデプロイ時刻に対して過去である場合、定期インスタンスは引き続き生成されますが、インスタンスは ドライラン されます。インスタンスのステータスは リアルタイムで生成される期限切れインスタンス となり、実際のコードロジックは実行されません。詳細については、「新規作成ノードの即時インスタンス生成機能を構成する」をご参照ください。
シナリオ 1: インスタンスのスケジューリング時刻が、ノードのデプロイ時刻およびインスタンスの生成時刻に対して将来であるが、これらの 2 つの時点の差が 10 分未満である場合。インスタンスのステータスは [リアルタイムで生成される期限切れインスタンス] になります。
例: ノード A のスケジューリング時刻が
09:05で、ノードのデプロイ時刻が09:00の場合。インスタンスのスケジューリング時刻が、ノードのデプロイ時刻およびインスタンスの生成時刻に対して将来であるが、それらの時間差が 10 分未満の場合、ノード A はステータスが [リアルタイムで生成される期限切れインスタンス] のドライランインスタンスを生成します。シナリオ 2: インスタンスのスケジューリング時刻が、ノードのデプロイ時刻およびインスタンスの生成時刻に対して過去であり、[リアルタイムで生成される期限切れインスタンス] がすぐに生成される場合。
例: ノード A のスケジューリング時刻が
09:00で、デプロイ時刻が10:00の場合、インスタンスの生成時刻はデプロイ時刻より前になります。ノード A は、ステータスが [リアルタイムで生成される期限切れインスタンス] のドライランインスタンスをすぐに生成します。
即時インスタンス生成の一般的なシナリオ
[デプロイ後即時] モードを使用してインスタンスを生成する場合、関連する機能シナリオのインスタンス実行および上流/下流の依存関係の状況は次のとおりです。