デフォルトでは、DataWorks の自動トリガータスクの設定は T+1 モードで有効になります。これは、タスクがデプロイされた翌日に生成されるインスタンスが、新しくデプロイされた内容に基づいていることを意味します。新しくデプロイまたは変更されたタスクを即日有効にして実行する必要がある場合は、デプロイ後即時 モードを使用できます。
仕組み
DataWorks では、タスクを変更して [Submit] した後、新しい設定が、変更の適用タイミング (即日または翌日) を決定します。
翌日 (デフォルト)
このデフォルトで推奨されるオプションは、当日の実行中インスタンスから変更を分離することで、本番環境の安定性を最大限に確保します。
-
動作原理:
T 日のデプロイメントはタスク定義のみを変更し、その日のインスタンスの実行には影響しません。 -
T 日 (デプロイ日) への影響:
-
動作:システムはタスクのコードとプロパティ定義のみを更新します。これは、T 日にすでに生成または実行がスケジュールされているインスタンスには影響しません。T 日のすべてのインスタンスは、デプロイメント前の設定に基づいて実行されます。
-
推奨事項:新しいロジックを当日のデータに適用したい場合は、デプロイメント後に T 日のインスタンスに対して手動でデータバックフィルを実行してください。
-
-
T+1 日 (翌日) への影響:
すべての変更は、デプロイメントの翌日 (T+1 日) の最初の自動トリガーインスタンスから有効になります。これらのインスタンスは、新しい設定に基づいて生成および実行されます。
デプロイ後即時
このモードでは、タスクの変更がデプロイ当日に適用されます。タスクのデプロイ時間とインスタンスのスケジューリング時間を比較して、当日 (T 日) にインスタンスをどのように実行するかを決定します。
-
動作原理:
システムは、T 日の各自動トリガーインスタンスのスケジューリング時間と、タスクのデプロイ時間に 10 分のシステムバッファーを加えた時間を比較します。 -
スケジューリング時間 < デプロイ時間 + 10 分
-
結果:新しいタスクはドライランを実行し、変更されたタスクはインスタンスを生成しません。
-
動作:一度もデプロイされたことのない新しいタスクの場合、インスタンスは期限切れとなり、ドライランを実行し、ビジネスロジックは実行されません。これにより、デプロイ前にスケジュールされていたインスタンスで新しいコードが実行されるのを防ぎます。変更されて再デプロイされたタスクの場合、期限切れのインスタンスは生成されません。
-
-
スケジューリング時間 > デプロイ時間 + 10 分
-
結果:通常どおり実行されます。
-
動作:システムは新しい設定に基づいてインスタンスを即座に生成し、実行します。
-
-
T+1 日 (翌日) への影響:
翌日 (T+1 日) のすべての自動トリガーインスタンスは、新しい設定に基づいて生成されます。
日をまたぐスケジューリングの予測可能性を確保するため、23:30 から 24:00 までの特別な日またぎ期間が設けられています。この期間内にサブミットされたデプロイの変更は、選択したインスタンス生成モードに関係なく、T+2 日に有効になります。
制限事項
-
変更の有効化時間:システムは毎日
23:30から24:00にかけてバッチでインスタンスを生成します。この期間中にサブミットされたデプロイによる変更は、T+2 日に生成される自動トリガーインスタンスで有効になります。 -
データソース変更の制限:ノードに関連付けられたデータソースのみを変更した場合、
デプロイ後即時を選択しても、その日にすでに生成されている自動トリガーインスタンスは更新されません。それらは変更前に設定されていたデータソースを使用して引き続き実行されます。変更を即時に有効にするには、データバックフィル 機能を使用してください。
即時デプロイのシナリオ
デプロイ後即時 モードはリスクが高くなります。不適切な使用は、スケジューリングの依存関係の乱れ、予期しないインスタンスの削除や置換、および即日タスクの安定性の低下につながる可能性があります。
推奨されるユースケース
このモードは注意して使用し、以下のシナリオでのみ使用してください。
-
即日実行が必要な新しいタスク:デプロイ当日に実行する必要がある、複雑な上位・下位依存関係を持たない新しいタスクに使用します。
-
既存インスタンスの置換:当日生成されたがまだ実行されていない待機中の自動トリガーインスタンスを置き換えるために、このモードを使用します。
高リスクのシナリオ (非推奨)
以下のシナリオでは、このモードの使用を避けてください。即日のスケジューリング依存関係を複雑にし、スケジューリングの失敗を引き起こす可能性があります。
-
デプロイ済みタスクのスケジュールの変更:これは、複雑な上位タスクと下位タスクの依存関係を持つタスクにとって特にリスクが高いです。スケジューリング周期 (たとえば、日次から時間単位) を変更して即時デプロイすると、古いインスタンスが保持され、新しいインスタンスが作成されるという混在状態になり、依存関係の乱れにつながる可能性があります。
-
上位タスクと下位タスクでインスタンス生成モードが不一致:たとえば、上位タスクが
T+1モードを使用し、下位タスクがデプロイ後即時モードを使用する場合です。この設定では、即日生成された下位タスクのインスタンスが依存する上位タスクを見つけられなくなり、自動実行できない孤立タスクになってしまいます。
代替ソリューション
デプロイ済みタスクの変更を伴うシナリオでは、より安全なアプローチは次のとおりです。
-
デフォルトの
T+1モードを使用してタスクをデプロイします。 -
デプロイメントが成功した後、タスクに対して データバックフィル を実行し、当日のインスタンスを手動でトリガーします。
シナリオ
シナリオ 1:新しいタスク
新しいタスクがデプロイされると、インスタンスが実行されるかどうかは、そのスケジューリング時間がデプロイ時間 (10 分のバッファーを含む) の前後どちらかによって決まります。
|
スケジューリング時間 |
動作 |
|
(デプロイ時間 + 10 分) より後 |
システムは、スケジュールされた時間に実行される通常の自動トリガーインスタンスを生成します。 |
|
(デプロイ時間 + 10 分) 以前 |
システムはリアルタイムで生成された期限切れインスタンスを生成します。このインスタンスはドライラン状態にあり、実際には実行されません。 当日のデータを処理する必要がある場合は、その日のデータタイムスタンプに対してデータバックフィルを実行できます。この操作でも、インスタンスが生成されるまでに 10 分の遅延があります。詳細については、「仕組み」をご参照ください。 |
たとえば、タスクが 12:00 に本番環境にデプロイされた場合、リアルタイムでのインスタンス生成は 12:10 から有効になります。
-
タスクのスケジューリング時間が
12:10より後の場合、タスクは実行対象としてスケジュールされます。 -
タスクのスケジューリング時間が
12:10より前の場合、タスクはドライランを実行し、そのインスタンスのステータスは「リアルタイムで生成された期限切れインスタンス」になります。
シナリオ 2:スケジューリング周期の更新
本番タスクのスケジューリングプロパティ (頻度や時間など) を更新して変更をデプロイすると、変更前後のインスタンスが同じ日に共存する可能性があります。これにより、その日のスケジューリング依存関係が複雑になることがあります。
このシナリオは、タスクが デプロイ後即時 モードでデプロイされた日にのみ発生します。翌日には、タスクは新しい設定に基づいて通常どおり自動トリガーインスタンスを生成します。
具体的な動作は次のとおりです。
-
新しいスケジューリング時間が未来の場合:
DataWorks は、将来のタイムスロットに対してすでに生成されているインスタンスを、最新のスケジューリング設定に基づいた新しいインスタンスに置き換えます。
-
新しいスケジューリング時間が過去の場合:
DataWorks は、新しい時間より前にスケジュールされたインスタンスを保持し、それ以降にスケジュールされたインスタンスを置換または削除します。
シナリオ 3:モードの不一致
上位タスクと下位タスクが両方とも新規で、インスタンス生成方式が異なる場合、孤立タスクが生成されることがあります。 たとえば、上位タスクがNext Dayに設定され、下位タスクがImmediately After Deploymentに設定されている場合、下位タスクは孤立タスクになる可能性があります。 孤立タスクは自動的に実行されません。 このタスクに多くの下流の依存関係がある場合、下流のビジネスプロセスに深刻な中断を引き起こすおそれがあります。
シナリオ 4:上位タスクのスケジュールの変更
上位タスクのスケジュールを変更し、そのタスクに異なるスケジューリング頻度の下位タスクが存在する場合、下位タスクの依存関係は、上位タスクの最新のスケジューリング設定 (日次、月次、時間単位など) に基づいて調整されます。
本番タスクのスケジュールを変更すると、その下流インスタンスの依存関係は新しいスケジュールに基づいて再設定されます。これは、新しく生成されたインスタンスと、置き換えられていない古いインスタンスの両方に影響します。時間単位および分単位の依存関係シナリオの詳細については、「複雑な依存関係シナリオにおけるスケジューリング設定の原則とサンプル」をご参照ください。このシナリオは、デプロイ準備ができたタスクバージョンのインスタンス生成モードが Immediately After Deployment に設定されており、かつ、そのスケジュール時間に変更が含まれている場合にのみ発生します。
以下にシナリオの例を示します。
-
シナリオ 1:上位タスクのスケジュールが 6 時間ごとから 8 時間ごと (00:00, 08:00, 16:00) に変更され、デプロイ後即時 モードが選択された場合。

-
シナリオ 2:上位タスクのスケジュールが 6 時間ごとから毎日 16:00 に変更され、デプロイ後即時 モードが選択された場合。
