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

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

スケジュールを使うと、指定した時間と期間に Azure Databricks ジョブを自動的に実行できます。 ジョブを実行するスケジュールは、分単位、時間単位、日単位、週単位、月単位の期間、および時刻を指定して定義できます。 スケジュールのタイム ゾーンを指定したり、スケジュールされたジョブをいつでも一時停止したりすることもできます。

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

ジョブのスケジュールを追加する

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

  1. サイドバーにある [ワークフロー] をクリックします。
  2. [ジョブ] タブの [名前] 列で、ジョブ名をクリックします。
  3. [ジョブの詳細] パネルで [トリガーの追加] をクリックし、[トリガーの種類][スケジュール済み] を選択します。
  4. 期間、開始時刻、タイム ゾーンを指定します。 必要に応じて、[Cron 構文の表示] チェックボックスをオンにして、[Quartz Cron 構文] でスケジュールを表示および編集します。
  5. [保存] をクリックします。

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

Note

  • cron 式の秒の構成に関係なく、Azure Databricks により、ジョブのスケジュールによってトリガーされる後続の実行の間に、10 秒の最小間隔が適用されます。
  • 夏時間または UTC を監視するタイム ゾーンを選択できます。 夏時間を監視するタイム ゾーンを選択すると、時間単位のジョブがスキップされるか、夏時間が開始または終了するときに 1、2 時間遅延しているように見える場合があります。 1 時間ごと (絶対時間) に実行するには、[UTC] を選択します。
  • ジョブ スケジューラは、待ち時間の短いジョブを想定していません。 ネットワークまたはクラウドの問題により、ジョブの実行が最大数分遅れることがあります。 このような状況では、スケジュールされたジョブはサービスが利用可能になるとすぐに実行されます。

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

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

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

継続的ジョブを実行する

  1. サイドバーにある [ワークフロー] をクリックします。
  2. [ジョブ] タブの [名前] 列で、ジョブ名をクリックします。
  3. [ジョブの詳細] パネルで [トリガーの追加] をクリックし、[ジョブの詳細] パネルで [トリガーの追加] をクリックし、[トリガーの種類][継続的] を選択して [保存] をクリックします。

継続的ジョブを停止するには、[今すぐ実行] の横にある Blue Down Caret をクリックし、[停止] をクリックします。

Note

  • 継続的ジョブの実行中のインスタンスは 1 つだけ存在できます。
  • 実行が終了してから新しい実行が開始されるまでに、わずかな遅延があります。 この遅延は 60 秒未満です。
  • 継続的ジョブでタスクの依存関係を使用することはできません。
  • 継続的ジョブで再試行ポリシーを使用することはできません。 代わりに、継続的ジョブでは、エクスポネンシャル バックオフを使用してジョブの実行エラーを管理します。
  • 一時停止している継続的ジョブで [今すぐ実行] を選択すると、新しいジョブの実行がトリガーされます。 ジョブが一時停止していない場合は、例外がスローされます。
  • 継続的ジョブで新しいジョブ構成を取得するには、既存の実行を取り消して、新しい実行を自動的に開始させます。 [実行の再開] をクリックして、更新した構成でジョブの実行を再開することもできます。

継続的ジョブのエラーはどのように処理されますか?

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

継続的ジョブが連続障害の許容しきい値を超えた場合の、後続ジョブの実行の管理方法を次に示します。

  1. ジョブは、システムによって設定された再試行期間の後に再開されます。
  2. 次のジョブの実行が失敗すると、再試行期間が長くなり、この新しい再試行期間の後にジョブが再起動されます。
    1. 再試行期間は、後続ジョブの実行が失敗するたびに、システムによって設定された最大再試行期間まで繰り返し延長されます。 最大再試行期間に達した後は、ジョブは最大再試行期間を使用して再試行され続けます。 継続的ジョブの再試行回数に制限はありません。
    2. ジョブの実行が正常に完了して新しい実行を開始した場合、または実行が失敗せずにしきい値を超えた場合、ジョブは正常と見なされ、バックオフ シーケンスがリセットされます。

ジョブ UI で、またはジョブ 2.1 API の POST /api/2.1/jobs/run-now リクエストまたはジョブ 2.0 API の POST /api/2.0/jobs/run-now リクエストにジョブ ID を渡して、エクスポネンシャル バックオフ状態の継続的ジョブを再開できます。