スケジュールに従って、または継続的にジョブを実行する

スケジュールされたトリガー タイプを使用して Databricks ジョブを定期的に実行することも、継続的なトリガー タイプを使用してジョブが常にアクティブに実行されるようにすることもできます。

スケジュールを使用すると、指定した時間と期間に Databricks ジョブを自動的に実行できます。 ジョブを定期的に実行する単純なスケジュール、またはcronを使用して定期的なスケジュールの特定の時間を定義する高度なスケジュールを定義できます。 詳細スケジュールでは、スケジュールのタイムゾーンを選択することもできます。 スケジュールされたジョブはいつでも停止できます。

継続トリガーを使用してジョブを実行すると、Databricks Jobs によってジョブのアクティブな実行が常に 1 つあることが保証されます。 前回の実行が正常に完了するか、失敗ステータスで完了した後、または現在実行中のジョブのインスタンスがない場合、新しいジョブの実行が開始されます。

ジョブスケジュールの追加

[スケジュール] トリガーの種類には、次の 2 つのオプションがあります。

  • 指定した時間単位と間隔に基づいてジョブを定期的に実行する基本スケジュールを定義します。 たとえば、ジョブが最初に実行された時点から 12 時間ごとに実行されるようにジョブをスケジュールします。

  • ジョブを実行する期間、時間、タイムゾーンをより細かく制御できる高度なスケジュールを定義します。

ジョブのスケジュールを定義するには:

  1. サイドバーで、 「ワークフロー」をクリックします。

  2. [ジョブ]タブの[名前]列で、ジョブ名をクリックします。

  3. ジョブの詳細パネルで、トリガーの追加をクリックします。

  4. [トリガーの種類][スケジュール済み] を選択します。

  5. [スケジュールの種類] で、[シンプル] または [詳細] を選択します。

    1. シンプル: ジョブを実行する間隔と時間単位を指定します。

    2. 詳細: 期間、開始時刻、およびタイム ゾーンを指定します。 オプションで、「 Show Cron Syntax 」チェックボックスを選択して、 Quartz Cron Syntaxでスケジュールを表示および編集します。

  6. 「保存」をクリックします。

ノートブック UIで直接ノートブックジョブをスケジュールすることもできます。

注:

  • Databricks は、cron 式の秒数構成に関係なく、ジョブのスケジュールによってトリガーされる後続の実行間に最小 10 秒の間隔を適用します。

  • 夏時間または UTC を観測するタイム ゾーンを選択できます。 夏時間を採用しているタイム ゾーンを選択した場合、時間単位のジョブはスキップされるか、 夏時間の開始時または終了時に1 時間または 2 時間遅延したように見えることがあります。 毎時(絶対時刻)に実行するには、UTC を選択します。

  • ジョブ スケジューラは、低遅延ジョブを対象としていません。 ネットワークまたはクラウドの問題により、ジョブの実行が最大数分遅れる場合があります。 このような状況では、スケジュールされたジョブはサービスが利用可能になるとすぐに実行されます。

ジョブスケジュールの停止と再開

ジョブを停止するには、 [ジョブの詳細]パネルで[停止する]をクリックします。

停止するジョブ スケジュールを再開するには、 [再開] をクリックします。

連続ジョブの実行

  1. サイドバーで、 「ワークフロー」をクリックします。

  2. [ジョブ]タブの[名前]列で、ジョブ名をクリックします。

  3. [ジョブの詳細]パネルで[トリガーの追加] をクリックし、 [ジョブの詳細]パネルで [トリガーの追加]をクリックし、 [トリガーの種類][連続]を選択して、 [保存]をクリックします。

継続的なジョブを停止するには、ブルーダウンキャレット [今すぐ実行]の横にある[停止]をクリックします。

注:

  • 継続ジョブの実行インスタンスは 1 つだけです。

  • 実行が終了してから新しい実行が開始されるまでに、わずかな遅延が発生します。 この遅延は 60 秒未満にする必要があります。

  • 継続ジョブではタスク依存関係を使用できません。

  • 継続的なジョブでは再試行ポリシーは使用できません。 代わりに、連続ジョブは指数バックオフを使用してジョブ実行の失敗を管理します。

  • 停止する継続ジョブで今すぐ実行を選択すると、新しいジョブ実行がトリガーされます。 ジョブが一時停止解除されると、例外がスローされます。

  • 継続的なジョブで新しいジョブ構成を取得するには、既存の実行をキャンセルすると、新しい実行が自動的に開始されます。 また、 「実行を再開」をクリックして、更新された構成でジョブの実行を再開することもできます。

継続的なジョブの失敗はどのように処理されますか?

Databricks ジョブは、指数バックオフスキームを使用して、連続して複数の障害が発生する継続的なジョブを管理します。 指数バックオフにより、回復可能な障害が発生した場合でも、ジョブを一時停止せずに継続的に実行し、正常な状態に戻すことができます。

継続ジョブが連続失敗の許容しきい値を超えた場合、後続のジョブ実行がどのように管理されるかを次に示します。

  1. システムによって設定された再試行期間後にジョブが再開されます。

  2. 次のジョブ実行が失敗した場合、再試行期間が延長され、この新しい再試行期間後にジョブが再開されます。

    1. その後のジョブ実行が失敗するたびに、再試行期間はシステムによって設定された最大再試行期間まで再度増加されます。 最大再試行期間に達した後も、ジョブは最大再試行期間を使用して再試行され続けます。 継続ジョブの再試行回数に制限はありません。

    2. ジョブの実行が正常に完了して新しい実行が開始されるか、実行が失敗することなくしきい値を超えた場合、ジョブは正常であると見なされ、バックオフ シーケンスがリセットされます。

ジョブ UIで、またはジョブ ID をPOST /api/2.1/ジョブ/実行-nowに渡すことによって、指数関数的バックオフ状態で連続ジョブを再開できます。 Jobs 2.1 APIまたはPOST /api/2.0/ジョブ/実行-nowでのリクエスト Jobs 2.0 API でのリクエスト。