すべてのプロダクト
Search
ドキュメントセンター

DataWorks:時間プロパティの設定

最終更新日:Aug 06, 2026

時間プロパティは、DataWorks がいつ、どのように定期タスクをトリガーするかを定義する、スケジューリングの中核となる条件です。これには、実行タイミングを設定するスケジュール時刻だけでなく、インスタンス生成モードスケジュールカレンダー再実行設定タイムアウトポリシーといった一連の詳細設定も含まれます。これらのパラメーターが一体となってタスクの時間的な動作計画を形成し、そのトリガールール、実行境界、およびエラーからの自動回復を制御します。本ガイドでは、各時間プロパティの設定方法とその仕組みを詳しく解説し、無人で安定的かつ信頼性の高い自動化データワークフローを構築するのに役立ちます。

クイックスタート:設定例

シナリオ:ある E コマース企業が、毎日 02:00 に前日の総売上を自動計算する必要があります。ネットワークの変動などの要因でタスクが失敗した場合、システムは自動的に 3 回リトライする必要があります。

  • ステップ 1:スケジュール時刻の設定

    1. スケジューリング周期の設定: タスク名をダブルクリックして、タスク構成パネルを開きます。右側で [スケジュール設定] > [時間プロパティ] をクリックします。スケジューリング周期 に設定します。

    2. スケジュール時刻の設定:スケジュール時刻を 02:00 に設定します。

  • ステップ 2:スケジューリングポリシーの設定

    1. 再実行プロパティの設定:再実行プロパティを実行が成功したか失敗したかにかかわらず、再実行できます。に設定します。

    2. 失敗時の自動再実行: [失敗時の自動再実行] を選択し、リトライ回数を 3 に設定し、間隔を 5 分 に設定します。

    3. 他のプロパティはデフォルト値のままにします。

  • 結果:

    タスクをデプロイすると、システムは翌日 (T+1) から毎日 02:00 に自動的にタスクをトリガーします。タスクが失敗した場合、システムは 5 分ごとにリトライします。タスクは最大 4 回 (通常実行 1 回 + リトライ 3 回) 実行されます。

仕組み

時間プロパティの設定は、インスタンスの生成から実行まで、定期タスクのライフサイクル全体を定義します。これらは以下のコアディメンションをカバーしています:

  • スケジュール時刻:タスク実行の頻度と特定の時間を視覚的に定義します。

  • インスタンスのライフサイクル管理:インスタンスがいつ作成され、いつまで有効かを決定します。これには以下が含まれます:

    • インスタンス生成モード:インスタンスがデプロイ日に生成されるか、翌日に生成されるかを制御します。

    • 有効期間:タスク全体の有効な時間範囲を設定します。

    • スケジュールカレンダー:休日などの非稼働日を除外するために使用します。

  • 実行ポリシー:スケジュールタイプを通じて、スケジュール時刻が到来した後のインスタンスの動作を定義し、インスタンスが通常通り実行されるか、ドライラン (スキップ) を行うか、または一時停止されるかを決定します。

  • 例外処理とフォールトトレランス:タイムアウト定義と再実行設定を通じて、タスク実行の失敗やタイムアウトなどの例外に対する自動処理メカニズムを提供します。

スケジュール時刻

スケジュール時刻は、タスクがいつ実行される予定か (スケジュール時刻とも呼ばれる) を制御し、これによりタスクノードが本番環境でどれくらいの頻度で自動的にトリガーされるかが決まります。設定した周期に基づいて、システムはタスクに対応する数の定期的なインスタンスを生成し、これらのインスタンスのスケジュール時刻とスケジューリング依存関係を通じて、ワークフロー全体の自動実行を駆動します。

説明

スケジュール時刻とビジネス日付は、DataWorks における最も重要な 2 つのベースライン時間概念です。詳細については、「スケジュール時刻とビジネス日付」をご参照ください。

スケジューリング周期の独立性と依存関係

  • 頻度の独立性:タスクのスケジューリング頻度 (「時間単位」や「日単位」など) は、それ自体の設定によって決まり、上流タスクの頻度とは独立しています。例えば、日単位でスケジュールされたレポートタスクは、時間単位でスケジュールされたデータ準備タスクに依存することができます。周期頻度が異なる依存関係の設定に関する詳細については、「周期をまたぐ依存関係の設定」をご参照ください。

  • インスタンスの依存関係:異なるスケジューリング周期を持つタスク間の依存関係 (周期をまたぐ依存関係) は、本質的にインスタンスの依存関係です。システムはこれらの依存関係を自動的に解決し、下流のインスタンスがそのビジネス日付に対応するすべての上流インスタンスが正常に完了した後にのみ、依存条件を満たすようにします。

  • ドライランメカニズム:ブロッキングを防ぐため、日単位以外のスケジュールタスク (週単位、月単位、年単位など) は、実行されない日にドライランインスタンスを生成します。このインスタンスは、コードを実行したりリソースを消費したりすることなく、即座に成功に設定され、下流の日単位スケジュールタスクが正常にトリガーされることを保証します。

スケジュール時刻 vs 実際の実行時間

  • スケジュール時刻:スケジューリング設定で設定した時間は、タスクの期待される開始時刻であり、タスクが実行を開始できる最も早い瞬間です。

  • 実際の実行時間:タスクの実際の開始時刻は、以下の両方の条件が同時に満たされることによって決まります:

    1. すべての上流インスタンスが正常に完了していること。

    2. 計算リソースが現在利用可能であること。

スケジューリングタイムゾーン

タスクのスケジュール時刻は、デフォルトでそのワークスペースのリージョンに対応するタイムゾーンを使用します。タイムゾーンを変更するには、夏時間の移行などのシナリオについて、「スケジューリングタイムゾーンの設定」をご参照ください。サポートされているタイムゾーン

以下は、各シナリオの設定例です:

分単位のスケジューリング

開始時刻、終了時刻、および実行間隔を設定します。最小間隔は 1 分です。指定された時間範囲内で、システムは一定の間隔で複数のインスタンスを生成します。

設定例

ターゲットノードは、毎日 00:00 から 23:59 の時間範囲内で 30 分ごとにスケジュールされます。

インスタンス詳細

次の図は、30 分ごとにスケジュールされるノードのインスタンスのスケジュール時刻とスケジューリングパラメーターの置換を示しています。

時間単位のスケジューリング

高頻度の同期や準リアルタイムコンピューティングのシナリオに適用されます。

  • インスタンス生成ロジック:システムは閉区間 [開始時刻, 終了時刻] に基づいて定期的なインスタンスを計算します。

    • :時間範囲を [00:00,03:00]、間隔を 1 時間に設定すると、システムは 00:00、01:00、02:00、03:00 にスケジュール実行時刻を持つ 4 つのインスタンスを生成します。

  • 設定方法:

    • 間隔ベースのトリガー:指定された時間範囲内で、固定の間隔 (例:1 時間ごと) で周期的に実行します。

    • 特定時刻トリガー:1 つまたは複数の指定された離散的な時刻に実行します。

設定例

ターゲットタスクは、毎日 00:00 から 23:59 の時間範囲内で 6 時間ごとに自動的にスケジュールされます。

スケジューリング詳細

スケジューリングシステムは、1 日に 4 つのインスタンスを生成し、00:00、06:00、12:00、18:00 のスケジュール時刻に実行します。

日単位のスケジューリング

日単位のスケジューリングは、最も一般的なスケジューリング方法です。これにより、有効な時間範囲内で、指定された時刻に 1 日 1 回タスクを実行できます。デフォルトでは、新しく作成されたタスクは日単位のスケジューリングを使用し、スケジュール時刻は 00:00 から 00:30 の範囲でランダムに生成されます。必要に応じて、カスタムの実行時間を指定できます。例えば、タスクを毎日 13:00 に 1 回実行するように指定できます。

設定例

スケジューリング周期に設定し、スケジュール時刻13:00 に設定します。システムは自動的に cron 式 00 00 13 * * ? を生成します。

スケジューリング詳細

スケジューリングシステムは、タスクのインスタンスを自動的に生成して実行します。次の図は、各ビジネス日付のデータ処理時間を示しています。

週単位のスケジューリング

毎週固定の頻度で実行される週次のビジネス集計や定期的なデータメンテナンスに適用されます。

インスタンス生成ロジック:システムは、有効な時間範囲内で毎日インスタンスを生成します

  • 通常実行:選択された実行日 (月曜日や金曜日など) にのみ、コードロジックがスケジュール通りにトリガーされます。

  • 自動ドライラン:選択されていない日 (火曜日、水曜日、木曜日、土曜日、日曜日など) に生成されたインスタンスは、自動的に「ドライラン成功」ステータスに設定されます。実際のコードロジックは実行されず、計算リソースも消費されません。

設定例

ターゲットタスクが毎週月曜日と金曜日に実行されるように設定されている場合、月曜日と金曜日に生成されたインスタンスは通常通りスケジュールされ、実行されます。他の 5 日間 (火曜日、水曜日、木曜日、土曜日、日曜日) に生成されたインスタンスはドライランインスタンスです。スケジュール時刻になると、これらのインスタンスは実際のコードロジックを実行することなく、直接成功ステータスに設定されます。

スケジュール時刻13:00 に設定します。システムは自動的に cron 式 00 00 13 ? * 1,5 を生成します。

スケジューリング詳細

スケジューリングシステムは、タスクのインスタンスを自動的に生成して実行します。

月単位のスケジューリング

月単位でデータを処理するシナリオに適用されます。これは、財務決済、月次パフォーマンスレポート、月次ユーザー行動分析などのコアタスクで一般的に使用されるスケジューリング周期です。

インスタンス生成ロジック:システムは、選択した月の特定の日付に基づいてインスタンスを生成します。各月次インスタンスは、完全な暦月を表します。

  • 通常実行:選択された実行日 (毎月 15 日や最終日など) にのみ、コードロジックがスケジュール通りにトリガーされます。

  • 自動ドライラン:選択されていない日 (毎月 1 日から 14 日など) に生成されたインスタンスは、自動的に「ドライラン」ステータスに設定されます。実際のコードロジックは実行されず、計算リソースも消費されません。

設定例

ターゲットタスクが毎月の最終日に決済を実行するように設定されている場合、毎月の最終日に生成されたインスタンスは通常通りスケジュールされ、実行されます。他の日付に生成されたインスタンスはドライランであり、スケジュール時刻になるとコードロジックを実行せずに自動的に成功状態に設定されます。

この例では、指定時刻毎月 15 日毎月最終日に設定され、スケジュール時刻02:00 に設定されています。システムは自動的に cron 式 00 00 02 15,L * ? を生成します。

スケジューリング詳細

スケジューリングシステムは、タスクのインスタンスを自動的に生成して実行します。

説明
  • データ補填機能を使用して月次スケジュールタスクのデータを補填する場合、選択した日付はデータタイムスタンプであり、データタイムスタンプ = スケジュール日 - 1 であることに注意してください。

    例:

    • 毎月 1 日にスケジュールされたタスクの場合、データを補填する際には、データタイムスタンプとして前月の最終日を選択します。

    • 毎月最終日にスケジュールされたタスクの場合、データを補填する際には、データタイムスタンプとして月の最終日の前日を選択します。

    • 補填のために異なるデータタイムスタンプを選択した場合、補填インスタンスはドライランになります。

  • その他の依存関係シナリオについては、「依存関係のシナリオ」をご参照ください。

年単位のスケジュール

四半期サマリー、年次監査、または特定の休日関連の処理など、長期サイクルのデータタスクに適用されます。

  • インスタンス生成ロジック:インスタンスは年間 365 日生成されますが、実際の計算は指定された月と日付にのみトリガーされます。

    • 柔軟な組み合わせ:月をまたいだ複数日の選択がサポートされています。例えば、各四半期の初日または最終日にのみタスクを実行できます。

    • ドライランメカニズム:実行条件を満たさない日付では、インスタンスは実際にロジックを実行したり計算リソースを消費したりすることなく、数秒でドライランされます。

設定例

ターゲットタスクが毎年 1 月、4 月、7 月、10 月の 1 日と最終日に実行されるように設定されている場合、それらの指定された日付に生成されたインスタンスは通常通りスケジュールされ、実行されます。他の日付に生成されたインスタンスはドライランであり、スケジュール時刻になるとコードロジックを実行せずに自動的に成功状態に設定されます。

この例では、指定時刻毎月最終日に設定され、スケジュール時刻00:00 に設定されています。システムは自動的に cron 式 00 00 00 L 1,4,7,10 ? を生成します。

スケジューリング詳細

スケジューリングシステムは、タスクのインスタンスを自動的に生成して実行します。

説明

cron 式は選択した時間に基づいて自動的に生成され、手動で変更することはできません。

インスタンスのライフサイクル管理

これらの設定は、タスクインスタンスが作成されるかどうかを決定します。タスクの具体的な実行時間には関与せず、代わりに、インスタンスが作成されるべきか、スケジューリングルール自体が有効であるかをマクロレベルで管理します。

  • インスタンス生成モード:設定変更が当日に有効になるか、翌日に有効になるかを決定します。翌日モード (デフォルト) は、変更が当日のタスクに干渉しないようにし、スムーズな移行を可能にします。即時モードは、当日のインスタンスを強制的にリセットして変更を適用します。このモードは、影響を完全に理解し、リスクを評価した後の緊急修正にのみ使用してください。

  • 有効期間:スケジューリングルール全体の有効な時間範囲を定義します。

  • スケジュールカレンダー:スケジュールを特定のカレンダー (取引日のみ実行するなど) にバインドできます。これにより、週単位の周期よりも柔軟な制御が可能になります。

インスタンス生成モード

ノードが本番スケジューリングシステムにデプロイされると、プラットフォームはノードに設定されたインスタンス生成方式に基づいて定期インスタンスを生成します。これにはT+1 翌日生成公開後、即時に生成されます。が含まれます。インスタンス生成モードに関わらず、オペレーションセンターの周期タスクページでタスクの最新の依存関係を表示できます。ただし、自動トリガーインスタンスが有効になるタイミングや、依存関係が更新されるタイミングは、以下で説明するように、選択したインスタンス生成モードによって異なります。

重要
  • デプロイ後すぐに生成されたインスタンスが、期限切れのドライランなしで正常にスケジュールされるようにするには、タスクのスケジュール時刻デプロイ時刻より少なくとも 10 分後であることを確認してください。タスクは、デプロイから少なくとも 10 分後の有効な時点で、最新のスケジューリング設定に基づいてコードロジックを実際に実行するか、インスタンスを再生成します。

  • 選択したインスタンス生成モードに関わらず、22:00~24:00 の時間帯に行われた変更は、ノードが本番環境にデプロイされた 3 日目に有効になります。この時間帯にタスクの変更を行うことは避けてください。

インスタンス生成モード

説明

T+1 翌日 (推奨)

  • 新規タスクの場合:ノードがデプロイされた後、自動スケジューリングは翌日から開始されます。同日にタスクを実行するには、データ補填機能を使用します。

  • 既存タスクの場合:変更は翌日に有効になり、当日に既に生成されているインスタンスは影響を受けません。

デプロイ後すぐ

当日のインスタンスは、ノードがデプロイされた直後に生成されます。インスタンスが正常にトリガーされるのは、スケジュール時刻がデプロイ時刻より少なくとも 10 分後である場合のみです。スケジュール時刻がこのしきい値より早い場合 (過去の時刻やバッファー期間内の時刻を含む)、インスタンスは自動的にドライラン状態になり、実際のコードを実行せずに直接成功に設定されます。

  • 新規タスクの場合:タスクがデプロイ日に実際に実行されるかどうかは、スケジュール時刻デプロイ時刻の時間的な関係に依存します。スケジュール時刻がデプロイ時刻より早い場合 (または有効なバッファー期間内にある場合)、生成されたインスタンスはドライランを実行します。

  • スケジューリング周期が変更された既存タスクの場合:システムは、最新の設定に基づいてデプロイ時刻以降の将来のインスタンスを再生成し、元のインスタンスを置き換えますが、以前に生成された過去のインスタンスは保持されます。頻度の変更により、同じ日に新旧両方の周期のインスタンスが複雑な依存関係で共存する可能性があるため、デプロイ前に影響を十分に評価し、慎重に進めることを推奨します。

説明

タスクコードとスケジューリング設定の有効化の違い:インスタンス生成モードに関わらず、インスタンスは実行時に常に最新のタスクコードを読み取ります。しかし、スケジューリング設定 (スケジューリングパラメーターや再実行ポリシーなど) は、インスタンス生成時にインスタンスに凍結されます。インスタンスが生成された後にスケジューリング設定を変更しても、既存のインスタンスは自動的に変更を同期せず、生成時の古い設定で実行を続けます。変更を適用するには、オペレーションセンターインスタンスの更新を使用して、既存のインスタンスのスケジューリング設定をその場で更新できます。特定の実行のみで最新の設定を使用する必要がある場合は、タスクのデータ補填を実行して、最新の設定で再実行することもできます。詳細については、「インスタンス生成モード:デプロイ後すぐ」をご参照ください。

有効期間

タスクの自動スケジューリングの有効な時間範囲を定義します。有効期間が終了すると、タスクはインスタンスを生成しなくなり、期限切れのタスクとなります。これはO&M 概要で監視および管理できます。

スケジュールカレンダー

タスクのスケジューリング日とスケジューリング方法を定義するために使用されます。DataWorks は、以下の 2 種類のカレンダーをサポートしています:

  • デフォルトカレンダー:プラットフォームによって提供され、一般的なシナリオに適用されます。

  • カスタムスケジュールカレンダー:ユーザーが定義し、柔軟なスケジューリング日を必要とする業界やシナリオ (金融業界など) に適用されます。カレンダーが適用されるワークスペース、カレンダーの有効期間、指定された日付のタスクのスケジューリング方法などのルールを設定できます。詳細については、「カスタムスケジュールカレンダー」をご参照ください。

選択したスケジュールカレンダーをスケジュール時刻インスタンス生成モードなどの他のスケジューリング設定と組み合わせて、指定された時間にタスクをスケジュールする必要があります。

実行ポリシー

この設定は、タスクがトリガーされた後にどのように実行されるかを定義します。

スケジュールタイプ

DataWorks がサポートするスケジュールタイプは、次の表に記載されています。

スケジュールタイプ

影響

ユースケース

正常なスケジューリング

コードを通常通り実行し、下流タスクをトリガーします。

通常状態で実行される定期タスクで、生成される定期インスタンスも通常状態で実行されます。

実行スキップ

インスタンスはスケジュール時刻が来ても実行されず、失敗に設定され、下流タスクをブロックします。スケジュールの一時停止は、オペレーションセンターでの凍結に相当します。スケジュールが一時停止されたノードは、オペレーションセンターで凍結アイコン Suspended を表示します。凍結された定期タスクは、凍結状態の定期インスタンスを生成します。

ワークフローの緊急遮断に適用されます。

ワークフローを一定期間実行する必要がない場合、このスケジュールタイプを選択してワークフローのルートノードを凍結できます。ワークフローを再度実行する必要がある場合は、ルートノードの凍結を解除できます。タスクの凍結解除の詳細については、「タスクの凍結解除」をご参照ください。

ドライランのスケジューリング

インスタンスはスケジュール時刻が来ると直接成功に設定されます (実行時間は 0 秒)。コードを実行したりリソースを消費したりしませんが、通常通り下流タスクをトリガーします。

ノードを一定期間実行する必要がなく、その下流ノードをブロックしたくない場合に、このスケジュールタイプを選択できます。

例外処理とフォールトトレランス

これは、さまざまな可能性のある例外に対する対応計画を事前に設定することで、データパイプラインの安定性を確保するための鍵です。

  • 再実行プロパティ:タスクが失敗したときに、システムが自動的にリトライするかどうか、またその方法を定義します。

  • タイムアウト設定:タスクに妥当な最大実行時間を設定します。タスクがこの時間を超えた場合、システムは自動的にアラートをトリガーするか、タスクを終了させて、単一ノードがスタックして過剰なリソースを消費するのを防ぎます。

タイムアウト定義

タスクの最大許容実行時間を設定します。実行時間がこの値を超えた場合、タスクは自動的に終了され、失敗に設定されて、タスクがスタックしてワークフロー全体に影響を与えるのを防ぎます。

  • 範囲定期インスタンス、データ補填インスタンス、およびテストインスタンスに適用されます。

  • デフォルト値:デフォルトは 3〜7 日で、システムは実際の負荷に基づいて動的に調整します。

  • 制限:手動で設定できる最大値は 168 時間 (7 日)、最小値は 1 分です。

再実行の説明

再実行ポリシーは、タスクの自動障害回復を実装するために使用されます。

説明
  • 再実行プロパティを使用する場合、タスクが失敗後に再実行された後のデータ品質の問題を避けるために、タスクがべき等であることを確認してください (特別なタスクを除く)。例えば、ODPS SQL 開発中に insert into 文の代わりに insert overwrite 文を使用します。

  • 再実行プロパティ:再実行ポリシーは、タスクの自動障害回復を実装するために使用されます。

    タイプ

    ユースケース

    実行ステータスに関わらず再実行を許可

    繰り返し実行しても結果に影響がない、べき等なタスクに適用されます。

    実行に成功した場合は再実行できませんが、失敗した場合は再実行できます。

    成功したタスクを誤って再実行することによるデータ汚染を防ぎます。

    実行の成否にかかわらず、再実行はできません。

    非べき等なタスク (特定のデータ同期タスクなど) に適用されます。このオプションを選択すると、失敗時の自動再実行機能は利用できなくなります。

  • 失敗時の自動再実行:タスクが失敗すると、システムは自動的に再実行をトリガーします。

    パラメーター

    説明

    再実行回数

    失敗後の自動リトライ回数。有効な値:1〜10。

    再実行間隔

    リトライ間の間隔。有効な値:1〜30 分。

    説明

    タイムアウトによる失敗は、自動再実行をトリガーしません。

よくある質問とベストプラクティス

  • Q:タスクの実際の実行時間がスケジュール時刻と異なるのはなぜですか?

    A:スケジュール時刻は、タスクの期待される開始時刻にすぎません。実際の実行には、①すべての上流依存タスクが正常に実行されたこと、②スケジューリングリソースが利用可能であること、という 2 つの条件が満たされる必要があります。どちらかの条件が満たされない場合、タスクは待機状態のままになります。

    また、スケジュール時刻が 00:00 前後に設定されている場合、この時間帯は DataWorks のスケジューリングのピークタイムであるため、インスタンスがトリガーされるまでに数分の遅延が発生することがあります。これは正常な現象です。詳細については、次の質問をご参照ください。

  • Q:タスクのスケジュール時刻は 00:00 ですが、なぜインスタンスの実行開始が数分遅れるのですか?

    A:毎日 00:00 前後は、DataWorks のスケジューリングのピークタイムです。多数のタスクが同時にトリガーされるため、スケジュール時刻とインスタンスの実際の開始時刻との間に通常数分の遅延が発生します。この遅延はタスクのトリガーフェーズで発生するものであり、正常な現象です。チケットを起票する必要はありません。

    トリガーの遅延を減らすには、ピーク時間を避けるために、スケジュール時刻を 00:00 以降の時点に設定することを推奨します。ビジネス要件で 00:00 のトリガーが必要な場合は、パイプラインのレイテンシーを評価する際にこの遅延を考慮に入れてください。

  • Q:私の上流タスクは時間単位で実行され、下流タスクは日単位で実行されます。これらは互いに依存できますか?

    A:DataWorks は、異なるスケジューリング周期を持つタスク間の依存関係をサポートしています。システムは複雑な依存関係解決アルゴリズムを使用して、下流タスクが実行される前に、すべての上流インスタンスが完了するのを正しく待機するようにします。詳細については、「周期をまたぐ依存関係の原則」をご参照ください。

  • Q:先週の金曜日のデータを補填しましたが、なぜ bizdate 変数が金曜日の日付を表示しないのですか?

    A:これは通常、「データタイムスタンプ」(bizdate) と「実行日」を混同しているために起こります。DataWorks では、bizdate = スケジュール時刻 − 1 日です。土曜日の早朝にスケジュールされたタスクを補填する場合、選択する必要がある bizdate は金曜日です。

  • Q:私のタスクにはデータ書き込みロジックが含まれています。タスクを再実行するとデータが重複しますか?

    A:その可能性があります。そのため、タスクのべき等性を確保することを強く推奨します。データ書き込みタスクでは、複数回の再実行で一貫した結果を保証するために、INSERT INTO (追加) の代わりに INSERT OVERWRITE (上書き) を使用してください。