Databricksジョブのモニタリングと可観測性

この記事では、アクセス権を持つジョブの表示、ジョブの実行履歴の表示、およびジョブ実行の詳細の表示を行うために Databricks UI で使用できる機能について説明します。 ジョブの通知を設定するには、「 ジョブイベントのEメール通知とシステム通知を追加する」を参照してください。

Databricks CLI を使用してジョブを表示し、ジョブを実行する方法については、CLI コマンド databricks jobs list -hdatabricks jobs get -h、および databricks jobs run-now -hを実行します。 Jobs API の使用方法については、 Jobs API を参照してください。

system.lakeflowスキーマにアクセスできる場合は、アカウント全体からジョブ実行とタスクのレコードを表示およびクエリすることもできます。Jobs システムテーブル リファレンスを参照してください。

ジョブの表示

アクセス権を持つジョブのリストを表示するには、サイドバーのワークフローアイコン 「ワークフロー 」をクリックします 。ワークフロー UI の [ジョブ ] タブには、ジョブの作成者、ジョブのトリガー (存在する場合)、最後の実行の結果など、使用可能なすべてのジョブに関する情報が一覧表示されます。

ジョブリストに表示される列を変更するには、 をクリックして 設定アイコン 列を選択または選択解除します。

ジョブリストでは、ジョブをフィルタリングできます。

  • キーワードを使用する。 このワークスペースでジョブ制限の引き上げ機能が有効になっている場合、キーワードによる検索は、名前、ジョブ ID、およびジョブ タグ フィールドでのみサポートされます。

  • 所有しているジョブのみを選択します。

  • アクセス権限のあるすべてのジョブを選択します。

  • タグを使用する。キーのみで作成されたタグを検索するには、検索ボックスにキーを入力します。 キーと値を使用して作成されたタグを検索するには、キー、値、またはキーと値の両方で検索できます。 たとえば、キーが department で値が financeのタグの場合、 department または finance を検索して一致するジョブを見つけることができます。 キーと値で検索するには、キーと値をコロンで区切って入力します。たとえば、 department:finance.

また、任意の列ヘッダーをクリックして、ジョブのリスト (降順または昇順) をその列で並べ替えることもできます。 ジョブ制限の引き上げ機能が有効になっている場合は、 NameJob ID、または Created byでのみソートできます。 デフォルトのソートは、 Name の昇順です。

クリック ケバブメニュー すると、ジョブの削除など、ジョブのアクションにアクセスできます。

ジョブの実行を表示する

Apache Airflow や Azure Data Factory などの外部オーケストレーション ツールによって開始された実行を含む、アクセス権を持つすべてのジョブについて、現在実行されている実行と最近完了した実行の一覧を表示できます。 最近のジョブ実行のリストを表示するには:

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

  2. [名前] 列で、ジョブ名をクリックします。実行タブが表示され、アクティブな実行と完了した実行のマトリックス ビューとリスト ビューが表示されます。

マトリックス ビューには、各ジョブ タスクを含む、ジョブの実行履歴が表示されます。

マトリックスの実行 合計期間 行には、実行の合計期間と実行の状態が表示されます。 開始時刻、期間、ステータスなど、実行の詳細を表示するには、 実行合計期間 行のバーにカーソルを合わせます。

タスク行の各セルは、タスクとタスクの対応するステータスを表します。開始時間、期間、クラスター、ステータスなど、各タスクの詳細を表示するには、そのタスクのセルにカーソルを合わせます。

ジョブ実行バーとタスク実行バーは、実行のステータスを示すために色分けされています。 成功した実行は緑、失敗した実行は赤、スキップされた実行はピンクです。 個々のジョブ実行バーとタスク実行バーの高さは、実行時間を視覚的に示します。

予想される完了時間を構成した場合、実行時間が構成された時間を超えると、マトリックス ビューに警告が表示されます。

デフォルト別では、実行リストビューには次の情報が表示されます。

  • 実行の開始時刻。

  • 実行識別子。

  • 実行がジョブ・スケジュールまたは API 要求によってトリガーされたか、または手動で開始されたか。

  • 現在実行中のジョブの経過時間、または完了した実行の合計実行時間。 期間が設定された 予定完了時間を超えると、警告が表示されます。

  • Spark ログへのリンク。

  • 実行のステータス ( QueuedPendingRunningSkippedSucceededFailedTerminatingTerminatedInternal ErrorTimed OutCanceledCanceling、または Waiting for Retryのいずれかです。

  • クリック ケバブメニュー すると、実行のコンテキスト固有のアクション (アクティブな実行の停止や完了した実行の削除など) にアクセスできます。

実行リスト ビューに表示される列を変更するには、 をクリックして 設定アイコン 列を選択または選択解除します。

ジョブ実行の詳細を表示するには、実行リスト・ビューの「開始時刻」列で実行のリンクをクリックします。このジョブの最新の成功した実行の詳細を表示するには、[ 最新の成功した実行に移動] をクリックします。

Databricks は、ジョブの実行履歴を最大 60 日間保持します。 ジョブの実行を保持する必要がある場合、Databricks では、有効期限が切れる前に結果をエクスポートすることをお勧めします。 詳細については、「 ジョブ実行結果のエクスポート」を参照してください。

ジョブ実行の詳細の表示

ジョブ実行の詳細ページには、ジョブ出力とログへのリンク (ジョブ実行の各タスクの成功または失敗に関する情報を含む) が含まれています。 ジョブの実行詳細には、ジョブ の実行 タブからアクセスできます。 [実行] タブからジョブの実行の詳細を表示するには、実行リスト ビューの [開始時刻] 列で実行のリンクをクリックします。ジョブ の実行 タブに戻るには、 ジョブ ID の値をクリックします。

ジョブに複数のタスクが含まれている場合は、タスクをクリックすると、次のようなタスク実行の詳細が表示されます。

  • タスクを実行したクラスター

    • タスクの Spark UI

    • タスクのログ

    • タスクのメトリクス

ジョブ ID の値をクリックして、ジョブの実行タブに戻ります。

Databricks はジョブの実行ステータスをどのように判断しますか?

Databricks は、ジョブの リーフ タスクの結果に基づいて、ジョブの実行が成功したかどうかを判断します。 リーフ タスクは、ダウンストリームの依存関係を持たないタスクです。 ジョブの実行には、次の 3 つの結果のいずれかがあります。

  • 成功: すべてのタスクが成功しました。

  • 失敗して成功しました: 一部のタスクは失敗しましたが、すべてのリーフ タスクは成功しました。

  • 失敗: 1 つ以上のリーフ タスクが失敗しました。

タスク実行履歴の表示

タスクの実行履歴(成功および失敗した実行を含む)を表示するには:

  1. (ジョブ実行の詳細)ページでタスクをクリックします。[タスク実行の詳細] ページが表示されます。

  2. 実行履歴のドロップダウンメニューでタスクの実行を選択します。

For eachタスクのタスク実行履歴を表示する

For eachタスクの実行履歴へのアクセスは、標準の Databricks ジョブ タスクと同じです。(ジョブ実行の詳細)ページでFor eachタスクノードをクリックするか、マトリックスビューの対応するセルをクリックできます。ただし、標準タスクとは異なり、 For each タスクの実行の詳細は、ネストされたタスクのイテレーションのテーブルとして表示されます。

失敗したイテレーションのみを表示するには、[ 失敗したイテレーションのみ] をクリックします。

イテレーションの出力を表示するには、イテレーションの [開始時間 ] または [終了時間 ] の値をクリックします。

最近のジョブ実行の表示

Apache Airflow や Azure Data Factory などの外部オーケストレーション ツールによって開始された実行を含む、アクセス権を持つワークスペース内のすべてのジョブについて、現在実行中および最近完了した実行の一覧を表示できます。 最近のジョブ実行のリストを表示するには:

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

  2. 「ジョブ実行」タブをクリックして、「ジョブ実行」リストを表示します。

[ 完了した実行数 ] グラフには、過去 48 時間に完了したジョブの実行数が表示されます。 デフォルトで、グラフには失敗したジョブ実行、スキップされたジョブ実行、および成功したジョブ実行が表示されます。 グラフをフィルター処理して、特定の実行ステータスを表示したり、グラフを特定の時間範囲に制限したりすることもできます。 [ ジョブの実行 ] タブには、過去 67 日間のジョブの実行のテーブルも含まれています。 デフォルトでは、テーブルには失敗したジョブ実行、スキップされたジョブ実行、および成功したジョブ実行の詳細が含まれます。

注:

[完了した実行数] グラフは、[自分が所有] をクリックした場合にのみ表示されます。

[Finished 実行数] は、実行ステータスでフィルタリングできます。

  • グラフを更新して、現在実行中または実行を待機しているジョブを表示するには、[ アクティブ実行] をクリックします。

  • 失敗した実行、成功した実行、スキップされた実行など、完了した実行のみを表示するようにグラフを更新するには、[ 完了した実行] をクリックします。

  • グラフを更新して、過去 48 時間に正常に完了した実行のみを表示するには、[ 成功した実行] をクリックします。

  • スキップされた実行のみを表示するようにグラフを更新するには、[ スキップされた実行] をクリックします。 ワークスペース内の並列実行の最大数を超えたか、ジョブがジョブ構成で指定された並列実行の最大数を超えたため、実行はスキップされます。

  • エラー状態で完了した実行のみを表示するようにグラフを更新するには、[ 失敗した実行] をクリックします。

フィルター・ボタンのいずれかをクリックすると、実行テーブル内の実行リストも更新され、選択したステータスに一致するジョブ実行のみが表示されます。

[Finished run] 実行カウント グラフに表示される時間範囲を制限するには、グラフ内でカーソルをクリックしてドラッグし、時間範囲を選択します。グラフと実行テーブルが更新され、選択した時間範囲からの実行のみが表示されます。

デフォルト別では、実行テーブル内の実行のリストが表示されます。

  • 実行の開始時刻。

  • 実行に関連付けられているジョブの名前。

  • ジョブを実行するユーザー名。

  • 実行がジョブ・スケジュールまたは API 要求によってトリガーされたか、または手動で開始されたか。

  • 現在実行中のジョブの経過時間、または完了した実行の合計実行時間。 期間が設定された 予定完了時間を超えると、警告が表示されます。

  • 実行のステータス ( QueuedPendingRunningSkippedSucceededFailedTerminatingTerminatedInternal ErrorTimed OutCanceledCanceling、または Waiting for Retryのいずれかです。

  • 実行のための任意のパラメーター。

  • クリック ケバブメニュー すると、実行のコンテキスト固有のアクション (アクティブな実行の停止や完了した実行の削除など) にアクセスできます。

実行リストに表示される列を変更するには、 をクリックして 設定アイコン 列を選択または選択解除します。

上位 5 つのエラーの種類の表には、選択した時間範囲で最も頻繁に発生するエラーの種類の一覧が表示され、ワークスペース内のジョブの問題の最も一般的な原因をすばやく確認できます。

ジョブ実行の詳細を表示するには、実行の [開始時刻] 列のリンクをクリックします。ジョブの詳細を表示するには、 ジョブ 列のジョブ名をクリックします。

Databricks アセットバンドルで作成されたジョブの表示と実行

Databricks ジョブ UI を使用して、 Databricks アセットバンドルによってデプロイされたジョブを表示および実行できます。 デフォルトでは、これらのジョブはジョブUIで読み取り専用です。 バンドルによってデプロイされたジョブを編集するには、バンドル構成ファイルを変更してジョブを再デプロイします。 バンドル設定にのみ変更を適用すると、バンドル・ソース・ファイルは常に現在のジョブ設定を取り込むようになります。

ただし、ジョブをすぐに変更する必要がある場合は、バンドル設定からジョブを切断して、UI でジョブ設定を編集できるようにすることができます。 ジョブを切断するには、[ ソースから切断] をクリックします。 「ソースから切断」ダイアログで、「切断」をクリックして確定します。

UI でジョブに加えた変更は、バンドル設定には適用されません。 UI で行った変更をバンドルに適用するには、バンドル設定を手動で更新する必要があります。 ジョブをバンドル構成に再接続するには、バンドルを使用してジョブを再デプロイします。

ジョブ実行結果のエクスポート

すべてのジョブ・タイプのノートブック実行結果とジョブ実行ログをエクスポートできます。

ノートブックの実行結果のエクスポート

ジョブの実行は、結果をエクスポートすることで保持できます。 ノートブック ジョブの実行では、レンダリングされたノートブックを エクスポート して、後で Databricks ワークスペース にインポート できます。

1 つのタスクを含むジョブのノートブック実行結果をエクスポートするには、次のようにします。

  1. ジョブの詳細ページで、[Completed run (past 60 days)] (完了実行 (過去 60 日間)) テーブルの [実行] 列にある実行の [View Details] (詳細の表示) リンクをクリックします。

  2. HTMLにエクスポート」をクリックします。

複数のタスクを持つジョブのノートブック実行結果をエクスポートするには:

  1. ジョブの詳細ページで、[Completed run (past 60 days)] (完了実行 (過去 60 日間)) テーブルの [実行] 列にある実行の [View Details] (詳細の表示) リンクをクリックします。

  2. エクスポートするノートブック タスクをクリックします。

  3. HTMLにエクスポート」をクリックします。

ジョブ実行ログのエクスポート

また、ジョブ実行のログをエクスポートすることもできます。 ジョブ を通じてログをDBFS APIに自動的に配信するようにジョブを設定できます。ジョブ API の Create a new job 操作 (POST /jobs/create) に渡される要求本文の new_cluster.cluster_log_conf オブジェクトを参照してください。