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

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

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

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

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

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

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

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

  3. [ジョブの詳細] パネルで [トリガー の追加] をクリックし 、[トリガーの種類] で [スケジュール済み] を選択します。

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

  5. [保存]をクリックします。

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

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

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

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

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

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

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

連続ジョブ の実行

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

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

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

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

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

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

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

  • 再試行ポリシーは、連続ジョブでは使用できません。代わりに、連続ジョブは エクスポネンシャル バックオフ を使用してジョブ実行の失敗を管理します。

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

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

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

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

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

  1. ジョブは、システムによって設定された再試行期間の後に再始動されます。

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

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

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

連続ジョブは、Jobs UI でエクスポネンシャルバックオフ状態で再起動するか、ジョブ ID を POST /api/2.1/jobs/実行-now に渡すことで再開できます リクエストを Jobs 2.1 API で、または POST / api/2.0/ジョブ/実行-now リクエストを Jobs 2.0 API で呼び出します。