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

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

ジョブで使用できる構成オプションもあれば、個々のタスクで使用できるオプションもあります。 たとえば、最大並列実行数はジョブでのみ設定できますが、再試行ポリシーはタスクごとに定義されます。

ジョブ の編集

ジョブの構成を変更するには:

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

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

サイドパネルには、 ジョブの詳細が表示されます。 ジョブのトリガー、コンピュートの構成、 通知、並列実行の最大数の変更、期間しきい値の構成、およびタグの追加または変更を行うことができます。 ジョブのアクセス制御が有効になっている場合は、 ジョブの アクセス許可を編集することもできます。

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

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

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

ジョブ・パラメーターは、タスク・パラメーターよりも優先されます。 ジョブ・パラメーターとタスク・パラメーターのキーが同じ場合、ジョブ・パラメーターはタスク・パラメーターをオーバーライドします。

構成済みのジョブ・パラメーターをオーバーライドしたり、 異なるパラメーターでジョブを実行し たり、ジョブ 実行を修復したりするときに、新しいジョブ・パラメーターを追加できます。

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

ジョブ・パラメーターを追加するには、「ジョブの詳細」サイド・パネルで「パラメーターの編集」をクリックし、各パラメーターのキーとデフォルト値を指定します。使用可能な動的な値参照のリストを表示するには、「 動的な値を参照」をクリックします。

ジョブ にタグを追加する

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

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

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

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

共有クラスター の構成

クラスターに関連付けられているタスクを表示するには、[ タスク] タブをクリックし、サイド パネルでクラスターにカーソルを合わせます。 関連するすべてのタスクのクラスター構成を変更するには、クラスターの下の [ 構成 ] をクリックします。 関連するすべてのタスクに対して新しいクラスターを構成するには、クラスターの下にある [スワップ ] をクリックします。

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

ジョブ アクセス制御を使用すると、ジョブの所有者と管理者は、ジョブに対するきめ細かなアクセス許可を付与できます。 ジョブ所有者は、ジョブの結果を表示できる他のユーザーまたはグループを選択できます。 所有者は、ジョブの実行を管理できるユーザーを選択することもできます ([今すぐ実行] と [実行のキャンセル] アクセス許可)。

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

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

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

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

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

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

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

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

ジョブ所有者を管理する

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

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

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

最大並列実行 数の構成

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

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

同時実行の制限のためにジョブをすぐに実行できない場合に、後で実行するためにジョブの実行をキューに入れられるようにするには、[ キュー ] トグルをクリックします。 「同時実行数の制限のためにジョブを実行できない場合の対処方法」を参照してください。

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

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

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

ジョブの最大完了時間を設定するには、[ タイムアウト(Timeout )] フィールドに最大期間を入力します。 この時間内にジョブが完了しない場合、Databricks はその状態を "タイムアウト" に設定し、ジョブは停止します。

タスク を編集する

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

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

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

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

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

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

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

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

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

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

  • タスク 2 とタスク 3 は、タスク 1 が最初に完了することに依存します。

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

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

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

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

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

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

依存ライブラリ の構成

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

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

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

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

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

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

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

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