デフォルトでは、DataWorks の自動トリガータスクの設定は T+1 モードで有効になります。これは、タスクがデプロイされた翌日に生成されるインスタンスが、新しくデプロイされた内容に基づくことを意味します。新しくデプロイまたは変更されたタスクを即日有効にして実行する必要がある場合は、デプロイ後即時 モードを使用できます。
仕組み
DataWorks では、タスクを変更して Submit すると、新しい設定は、変更が適用されるタイミング (当日または翌日) に影響します。
翌日 (デフォルト)
このデフォルトで推奨されるオプションは、当日に実行中のインスタンスから変更を分離することで、本番環境の安定性を最大限に高めます。
-
動作原理:
T 日 のデプロイではタスク定義のみが変更され、その日のインスタンスの実行には影響を与えません。 -
T 日 (デプロイ日) への影響:
-
動作:システムはタスクのコードとプロパティ定義のみを更新します。これは、T 日にすでに生成されている、または実行がスケジュールされているインスタンスには影響を与えません。T 日のすべてのインスタンスは、デプロイ前の設定に基づいて実行されます。
-
推奨事項:新しいロジックを当日のデータに適用したい場合は、デプロイ後に T 日のインスタンスに対して手動でデータバックフィルを実行してください。
-
-
T+1 日 (翌日) への影響:
すべての変更は、デプロイの翌日 (T+1 日) の最初の自動トリガーインスタンスから有効になります。これらのインスタンスは、新しい設定に基づいて生成および実行されます。
デプロイ後即時
このモードは、デプロイ当日にタスクの変更を適用します。タスクのデプロイ時刻とインスタンスのスケジューリング時刻を比較して、当日 (T 日) にどのように実行されるかを決定します。
-
動作原理:
システムは、T 日の各自動トリガーインスタンスのスケジューリング時刻と、タスクのデプロイ時刻に 10 分のシステムバッファーを加えた時刻を比較します。 -
スケジューリング時刻 < デプロイ時刻 + 10 分
-
結果:新規タスクはドライランを実行し、変更されたタスクはインスタンスを生成しません。
-
動作:一度もデプロイされたことのない新規タスクの場合、インスタンスは期限切れとなり、ドライランを実行しますが、ビジネスロジックは実行されません。これにより、デプロイ前のインスタンスで新しいコードが実行されるのを防ぎます。変更され、再デプロイされたタスクの場合、期限切れインスタンスは生成されません。
-
-
スケジューリング時刻 > デプロイ時刻 + 10 分
-
結果:正常に実行されます。
-
動作:システムは新しい設定に基づいてインスタンスを即座に生成し、実行します。
-
-
T+1 日 (翌日) への影響:
翌日 (T+1 日) のすべての自動トリガーインスタンスは、新しい設定に基づいて生成されます。
日をまたぐスケジューリングの予測可能性を確保するため、22:00 から 24:00 まで特別な日跨ぎウィンドウが存在します。このウィンドウ内に提出されたデプロイは、選択された生成モードに関係なく、T+2 日に有効になります。
制限事項
-
変更が有効になる時刻:システムは毎日
22:00から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 に変更され、デプロイ後即時モードが選択された場合。
