ノードを本番環境にデプロイすると、DataWorks は当日中にスケジューリングインスタンスを作成するか、翌日まで待機します。このページでは、デプロイ直後 モードの仕組みと、代表的な適用シナリオにおける動作について説明します。
仕組み
DataWorks は毎晩、翌日のすべての 定期タスク に対して 自動トリガーインスタンス を作成します。ノードで設定したインスタンス作成モードは、新規デプロイまたは更新されたノードが有効になるタイミングを制御します。
以下の表は、同一の例(本日 15:00 にノードをデプロイ)を用いて、2 つのモードを比較したものです。
| モード | 有効になるタイミング | 15:00 にデプロイ — 結果 |
|---|---|---|
| 翌日 | 翌日の自動トリガーインスタンスが変更内容を反映 | インスタンスは明日から実行開始 |
| デプロイ直後 | 当日中にインスタンスが作成されるが、10 分の遅延が発生 | スケジュール時刻が 15:10 以降のインスタンスは本日実行、それより前の時刻はドライラン |
本番環境のノードのスケジューリング構成を変更する際は、デプロイ直後 モードの使用を避けてください。これにより、依存関係の変更、依存関係の混同、インスタンスの置き換え、インスタンスの削除、および複雑な当日依存グラフが発生する可能性があります。依存関係は翌日には通常通り復旧します。
注意事項
-
ワークフローノード: ワークフロー内のノードは個別に設定できません。ワークフロー編集ページのスケジューリング設定で、ワークフロー全体のインスタンス作成モードを指定してください。
-
毎日のメンテナンスウィンドウ: 毎日 23:30 ~ 24:00 の間、DataWorks は翌日のすべての自動トリガーインスタンスを作成します。この期間中にデプロイされたノードについては、インスタンスが作成されるのは翌々日となります。
-
10 分の有効化遅延: デプロイ後、即時インスタンス作成には 10 分の遅延が発生します。インスタンスが実行されるためには、ノードのスケジュール時刻がデプロイ時刻より少なくとも 10 分後である必要があります。この時間差が 10 分未満の場合、またはスケジュール時刻がすでに過去となっている場合は、DataWorks はステータスが リアルタイムで作成された期限切れインスタンス のドライランインスタンスを作成します。
-
即時変更の適用範囲: すべての構成変更が当日のインスタンスに即時に反映されるわけではありません。たとえば、ノードに関連付けられたデータソースインスタンスを変更し、デプロイ直後 でデプロイした場合、当日の既存のインスタンスは引き続き以前のデータソースを使用します。最新の構成でタスクを実行するには、データバックフィル 操作を実行してください。
-
上流/下流ノードのモード不一致: 上流ノードが 翌日、下流ノードが デプロイ直後 を使用している場合、下流ノードは 孤立ノード になります。孤立ノードは自動スケジュールされないため、依存するタスクに影響が出る可能性があります。
即時インスタンス作成の動作
即時インスタンス作成は将来のスケジュール時刻にのみ適用されます。インスタンスが正常に実行されるのは、スケジュール時刻がデプロイ時刻より後のときのみです。
以下の図は、全体の実行ルールを示しています:
通常実行
スケジュール時刻がデプロイ時刻より 10 分以上後のインスタンスは、通常どおり実行されます。
| シナリオ | 結果 |
|---|---|
| 新しいノードがデプロイ済み。スケジュール時刻は10分以上先。 | DataWorks は実行可能な自動トリガーインスタンスを作成し、通常どおりスケジュール |
| ノード更新済み。新しいスケジュール時刻は今から10分以上先です。 | DataWorks は新しい構成に基づいてインスタンスを作成し、以前の構成によるインスタンスを置き換え |
| 上流タスクのスケジュール時刻を変更;新しいインスタンスのスケジュール時刻がデプロイ時刻より 10 分以上先 | まだ実行されていない下流インスタンスは、新しい上流インスタンスに依存 |
ドライラン(期限切れインスタンス)
スケジュール時刻がデプロイ時刻より過去、またはデプロイ時刻より 10 分以内の未来である場合、DataWorks はドライランインスタンスを作成します。このインスタンスのステータスは リアルタイムで作成された期限切れインスタンス となり、実際のコードロジックは実行されません。
例 1: ノード A のスケジュール時刻は 09:05、デプロイ時刻は 09:00 です。時間差が 10 分未満のため、DataWorks はステータスが リアルタイムで作成された期限切れインスタンス のドライランインスタンスを作成します。
例 2: ノード A のスケジュール時刻は 09:00、デプロイ時刻は 10:00 です。スケジュール時刻はすでに過去のため、DataWorks は即座にステータスが リアルタイムで作成された期限切れインスタンス のドライランインスタンスを作成します。
当日のデータでタスクを実行するには、データバックフィル 操作を実行してください。データバックフィルは、最新のタスク構成で実行されます。
適用シナリオ
新規ノードのデプロイ
デプロイ直後 で新規ノードをデプロイすると、DataWorks は当日中にインスタンスを作成します。これらのインスタンスが実際に実行されるかどうかは、スケジュール時刻とデプロイ時刻の関係によって決まります。
例: ノードが本番環境に 12:00 にデプロイされます。10 分の遅延により、このモードは 12:10 から有効になります。
| スケジュール時間 | 結果 |
|---|---|
12:10 |
インスタンスは正常にスケジュールされ、実行されます |
12:10 |
インスタンスのドライランが実行され、ステータスは [リアルタイムで生成された期限切れのインスタンス] |
これは当日のインスタンス実行にのみ影響します。翌日以降は、DataWorks がスケジューリング構成に従って通常どおりインスタンスを作成します。
デプロイ済みタスクのスケジューリング周期の変更
本番タスクのスケジュール時刻を更新してデプロイすると、変更前後双方のインスタンスが当日に共存し、複雑なインスタンス依存関係が発生する可能性があります。
このシナリオは、デプロイ直後 でタスクをデプロイした当日のみ発生します。翌日以降は、DataWorks が更新された構成に従って通常どおりインスタンスを作成します。
例 1: スケジューリング頻度を 6 時間ごとから 08:00(過去の時刻)の 1 日 1 回に変更し、09:00 にデプロイ。
例 2: スケジューリング頻度を 6 時間ごとから 18:00(将来の時刻)の 1 日 1 回に変更し、09:00 にデプロイ。
この場合:
-
新規インスタンスの作成: 新しい構成に従い、09:00 後に日次インスタンス A3 が作成されます。
-
置き換え: 新規インスタンス A3 が元のインスタンス A3 および A4 を置き換えます。
-
保持されるインスタンス: 09:10 より前に作成された時間単位のインスタンスは保持されます。
スケジュール時刻変更時の一般的なルールは以下のとおりです:
-
将来のスケジュール時刻: DataWorks は、将来の時間帯で既に作成済みのインスタンスを、最新の構成に基づくインスタンスで置き換えます。
-
過去のスケジュール時刻: DataWorks は、変更の有効開始時刻より前に作成されたインスタンスを保持し、有効開始時刻以降に作成されたインスタンスを置き換えまたは削除します。
トラブルシューティング
デプロイ直後 でデプロイした後に、インスタンスが想定どおりに作成されない場合は、以下の項目を順に確認してください。
-
スケジュール時刻とデプロイ時刻の確認: スケジュール時刻は、デプロイ時刻より少なくとも 10 分後である必要があります。この時間差が 10 分未満、またはスケジュール時刻がすでに過去となっている場合、インスタンスはステータスが リアルタイムで作成された期限切れインスタンス のドライランとなります。オペレーションセンターでインスタンスステータスを確認してください。
-
メンテナンスウィンドウ内でのデプロイの確認: 23:30 ~ 24:00 の間にデプロイした場合、インスタンスは翌日ではなく、翌々日に作成されます。
-
孤立ノードの確認: 上流および下流ノードのインスタンス作成モードが異なる場合、下流ノードが孤立する可能性があります。上流および下流ノードが同じモードを使用していることを確認するか、オペレーションセンターの依存グラフで孤立ノードの表示を確認してください。
-
実際に有効になる変更の確認: ノードに関連付けられたデータソースインスタンスを変更した場合、当日のインスタンスは引き続き以前のデータソースを使用します。最新の構成でタスクを実行するには、データバックフィル を実行してください。