こちらを眺めていたら、結構機能追加されていることに気づきました。
Databricks ジョブ UIで完了したジョブ実行の概要を視覚的に確認する
サイドメニューのJob Runsあるいは、ワークフロー > ジョブ実行にアクセスします。
過去に実行されたジョブの概要とエラーなどを確認することができます。
実行速度の遅いジョブやスタックしたジョブのアラートを作成する
ジョブやジョブを構成するタスクの処理が想定以上に時間を要している場合に、警告やタイムアウトを行う機能です。
最初に以下のようなノートブックを作成しておきます。
import time
time.sleep(30)
ジョブを作成して、ジョブのタイムアウト時間を設定します。なお、ジョブのタイムアウト時間が設定されていないと、タイムアウトの通知を受け取ることができません。タスクのタイムアウトの通知も同様です。
通知先を設定し、通常より長く時間... (継続時間が通常より長くかかる場合)にチェックを入れます。ここのラベル、あとで修正しておきます。
これで、ジョブの処理時間に対する閾値を設定することができます。
別のジョブをDatabricksジョブのタスクとして実行する
これは、あるジョブから別のジョブを呼び出せるということです。
以下のようにそれぞれがタスクから構成されるジョブを2つ作成します。
- job1
- task1-1
- job2
- task2-1
- task2-2
job2を作成した後に、job1のtask1-1の後続処理としてjob2を選択します。
これで、あるジョブから別のジョブを呼び出せるように設定できました。
Databricksジョブで条件付きでタスクを実行する
個人的には心待ちにしていた機能です。
以下のように3つのノートブックを作成します。
print("no error")
print("success")
print("failed")
これらのノートブックを用いてジョブを構成します。タスクtask-a
の後段にタスクsuccess
を追加し、次の場合に実行ですべて成功しましたを選択します。これで、タスクsuccess
は前段のすべてのタスク(今回はtask-a
のみですが)が成功した場合に実行されるようになります。
さらにタスクtask-a
の後段にタスクfailure
を追加します。今度は次の場合に実行で少なくとも1回失敗しましたを選択します。
まずは、このままジョブを実行します。タスクtask-a
は成功するので、タスクsuccess
が実行されます。
次にtask-a
を変更して、エラーを意図的に発生させます。
print("error happens")
aa
今度はtask-a
が処理に失敗するので、failure
が実行されます。
これで、さらに柔軟なロジックを構成できるようになります。是非お試しください!