Databricks ジョブの設定を構成する

この記事では、ジョブ UI で Databricks ジョブと個々のジョブ タスクを構成する方法について詳しく説明します。 Databricks CLI を使用してジョブ設定を編集する方法については、CLI コマンドdatabricks jobs update -hを実行してください。 Jobs API の使用方法については、 Jobs APIを参照してください。

一部の構成オプションはジョブで使用でき、その他のオプションは個々のタスクで使用できます。 たとえば、最大実行実行はジョブに対してのみ設定できますが、再試行ポリシーはタスクごとに定義されます。

ジョブの編集

ジョブの設定を変更するには:

  1. サイドバーのワークフローアイコンワークフロー]をクリックします。

  2. 「名前」列で、ジョブ名をクリックします。

サイド パネルにジョブの詳細が表示されます。 ジョブのトリガー、コンピュート設定、通知、実行最大数、実行時間のしきい値の設定、タグの追加・変更が可能です。 ジョブ アクセス制御が有効になっている場合は、ジョブ権限を編集することもできます。

すべてのジョブタスクのパラメーターを追加する

キーワード引数を受け入れるように構成されたPython wheelファイルなど、キーと値を受け入れる任意のジョブのタスクに渡されるジョブに 問題 を構成できます。 ジョブ レベルで設定された課題は、設定されたタスク レベルの課題に追加されます。 タスクに渡されたジョブの課題は、タスクに設定されたすべての課題とともにタスクの設定に表示されます。

JARタスクやSpark Submitタスクなど、Key-Value が構成されていないタスクにジョブ問題を渡すこともできます。 ジョブの課題をこれらのタスクに渡すには、引数を{{job.parameters.[name]}}としてフォーマットし、 [name]を課題を識別するkeyに置き換えます。

ジョブの問題はタスクの問題よりも優先されます。 ジョブ保留とタスク保留が同じキーを持つ場合、ジョブ保留がタスク保留をオーバーライドします。

別のジョブを実行するとき、または ジョブ実行を修復するときに、構成されたジョブの問題をオーバーライドしたり、新しいジョブの問題を追加したりできます。

動的な値参照のセットを使用して、ジョブやタスクに関するコンテキストを共有することもできます。

ジョブ不足を追加するには、ジョブの詳細サイド パネルで[編集] をクリックし、各不足のキーと値を指定します。 使用可能な動的値参照のリストを表示するには、[ 動的値の参照] をクリックします。

ジョブにタグを追加する

ジョブにラベルまたはキー:値属性を追加するには、ジョブを編集するときにタグを追加します。 タグを使用して、ジョブ リスト内のジョブをフィルタリングできます。たとえば、 departmentタグを使用して、特定の部門に属するすべてのジョブをフィルタリングできます。

注:

ジョブ タグは、個人を特定できる情報やパスワードなどの機密情報を保存するように設計されていないため、Databricks では、機密でない値にのみタグを使用することをお勧めします。

タグは、ジョブの実行時に作成されたジョブ クラスターにも伝播され、既存のクラスターモニタリングでタグを使用できるようになります。

タグを追加または編集するには、ジョブの詳細サイド パネルで[+ タグ]をクリックします。 タグはキーと値、またはラベルとして追加できます。 ラベルを追加するには、[ キー ] フィールドにラベルを入力し、[ ] フィールドを空のままにします。

共有クラスターの構成

クラスターに関連付けられたタスクを表示するには、 「タスク」タブをクリックし、サイド パネルのクラスターの上にマウスを置きます。 関連するすべてのタスクのクラスター構成を変更するには、クラスターの下の[構成] をクリックします。 関連するすべてのタスクに対して新しいクラスターを構成するには、クラスターの下の[スワップ] をクリックします。

ジョブへのアクセスを制御する

ジョブのアクセス制御により、ジョブの所有者と管理者はジョブに対してきめ細かい権限を付与できます。 ジョブの所有者は、他のユーザーまたはグループがジョブの結果を表示できるかを選択できます。 所有者は、自分のジョブ実行を管理できる人 (今すぐ実行およびキャンセルの権限) を選択することもできます。

ジョブのアクセス許可レベルについては、 「ジョブ ACL」を参照してください。

ジョブの権限を管理するには、ジョブに対する CAN MANAGE または IS OWNER 権限が必要です。

  1. サイドバーで、 [ジョブ実行] をクリックします。

  2. ジョブの名前をクリックします。

  3. ジョブの詳細パネルで、権限の編集をクリックします。

  4. [アクセス許可の設定]で、 [ユーザー、グループ、またはサービスプリンシパルの選択]ドロップダウン メニューをクリックし、ユーザー、グループ、またはサービスプリンシパルを選択します。

    「権限設定」ダイアログ
  5. [追加] をクリックします。

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

ジョブ所有者を管理する

デフォルトでは、ジョブの作成者は IS OWNER 権限を持ち、ジョブの[実行ユーザー] 設定のユーザーになります。 「実行として」設定のユーザーの ID としてのジョブの実行。 設定としての実行の詳細については、 「サービスプリンシパルとしてジョブを実行する」を参照してください。

ワークスペース管理者は、ジョブの所有者を自分に変更できます。 所有権が譲渡されると、前の所有者にCAN MANAGE権限が付与されます。

注:

ワークスペースのRestrictWorkspaceAdmins設定がALLOW ALLに設定されている場合、ワークスペース管理者はジョブの所有者をワークスペース内の任意のユーザーまたはサービスプリンシパルに変更できます。 ワークスペース管理者がジョブ所有者を自分自身のみに変更できるように制限するには、 「ワークスペース管理者を制限する」を参照してください。

最大並列実行数の構成

このジョブの並列実行の最大数を設定するには、 「詳細設定」「同時実行の編集」をクリックします。 新しい実行を開始しようとしたときにジョブがすでにアクティブな実行の最大数に達している場合、 Databricks実行をスキップします。 同じジョブを複数回同時に実行するには、この値をデフォルトの 1 より大きく設定します。 これは、たとえば、頻繁なスケジュールでジョブをトリガーし、連続した実行が互いに重複できるようにしたい場合、または入力された点によって異なる複数の実行をトリガーしたい場合に便利です。

ジョブ実行のキューイングを有効にする

同時実行制限によりすぐに実行できない場合に、ジョブをキューに入れて後で実行できるようにするには、 [詳細設定][キュー]トグルをクリックします。 「同時実行制限のためにジョブを実行できない場合はどうすればよいですか?」を参照してください。

注:

2024 年 4 月 15 日以降に UI を通じて作成されたジョブでは、キューイングがデフォルトで有効になります。

ジョブの予想完了時間またはタイムアウトを構成する

ジョブの予想完了時間やジョブの最大完了時間など、ジョブのオプションの期間しきい値を構成できます。 期間のしきい値を設定するには、[ 期間のしきい値の設定] をクリックします。

ジョブの予想完了時間を設定するには、 「警告」フィールドに予想期間を入力します。 ジョブがこのしきい値を超える場合、実行速度が遅いジョブに関する通知を設定できます。 「実行速度が遅いジョブや遅延しているジョブに関する通知を構成する」を参照してください。

ジョブの最大完了時間を構成するには、 [タイムアウト]フィールドに最大期間を入力します。 この時間内にジョブが完了しない場合、Databricks はステータスを「タイムアウト」に設定し、ジョブは停止します。

タスクを編集する

タスク構成オプションを設定するには:

  1. サイドバーのワークフローアイコンワークフロー]をクリックします。

  2. 「名前」列で、ジョブ名をクリックします。

  3. 「タスク」タブをクリックし、編集するタスクを選択します。

タスクの依存関係を定義する

「依存先」ドロップダウン メニューを使用して、ジョブ内のタスクの実行順序を定義できます。 このフィールドをジョブ内の 1 つ以上のタスクに設定できます。

タスクの依存関係を編集する

注:

ジョブが 1 つのタスクのみで構成されている場合、 Depends on は表示されません。

タスクの依存関係を構成すると、タスク実行の有向非巡回グラフ (DAG) が作成されます。これは、ジョブ スケジューラで実行順序を表す一般的な方法です。 たとえば、4 つのタスクで構成される次のジョブを考えてみましょう。

タスク依存関係の例図
  • タスク 1 はルート タスクであり、他のタスクに依存しません。

  • タスク 2 とタスク 3 は、タスク 1 が最初に完了することを前提としています。

  • 最後に、タスク 4 はタスク 2 とタスク 3 が正常に完了することに依存します。

Databricks は、ダウンストリーム タスクを実行する前にアップストリーム タスクを実行し、可能な限り多くのタスクを並行して実行します。 次の図は、これらのタスクの処理順序を示しています。

タスク依存関係の例のフロー

タスクのクラスターを構成する

タスクを実行するクラスターを構成するには、 「クラスター」ドロップダウン メニューをクリックします。 共有ジョブ クラスターを編集することはできますが、他のタスクがまだ共有クラスターを使用している場合は、その共有クラスターを削除することはできません。

タスクを実行するクラスターの選択と設定の詳細については、「ジョブでDatabricksコンピューティングを使用する」を参照してください。

依存ライブラリの構成

タスクが実行される前に、依存ライブラリがクラスターにインストールされます。 実行を開始する前に、すべてのタスクの依存関係が確実にインストールされるように設定する必要があります。 依存関係を指定するには、 「ライブラリ依存関係の管理」の推奨事項に従ってください。

タスクの予想完了時間またはタイムアウトを構成する

タスクの予想完了時間やタスクの最大完了時間など、タスクのオプションの期間しきい値を構成できます。 期間のしきい値を設定するには、[ 期間のしきい値] をクリックします。

タスクの予想完了時間を設定するには、 「警告」フィールドに期間を入力します。 タスクがこのしきい値を超えると、イベントがトリガーされます。 このイベントを使用すると、タスクの実行速度が遅い場合に通知できます。 「実行速度が遅いジョブや遅延しているジョブに関する通知を構成する」を参照してください。

タスクの最大完了時間を構成するには、 [タイムアウト]フィールドに最大期間を入力します。 この時間内にタスクが完了しない場合、Databricks はそのステータスを「タイムアウト」に設定します。

タスクの再試行ポリシーを構成する

失敗したタスク実行を再試行するタイミングと回数を決定するポリシーを構成するには、 「再試行」の横にある「+ 追加」をクリックします。 再試行間隔は、失敗した実行の開始とその後の再試行実行の間のミリ秒単位で計算されます。

注:

タイムアウト再試行の両方を設定すると、タイムアウトは各再試行に適用されます。