次の方法で共有


Lakeflow ジョブの監視と可観測性

この記事では、Azure Databricks UI で、アクセスできるジョブの表示、ジョブの実行履歴の表示、ジョブ実行の詳細の表示に使用できる機能について説明します。 ジョブの通知を構成するには、「ジョブに通知を追加する」を参照してください。

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

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

ジョブとパイプラインを表示する

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

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

重要

統合ジョブ とパイプラインの 一覧は パブリック プレビュー段階ですジョブとパイプライン (統合管理、検索、フィルター処理) を無効にすることで、この機能を無効にし、既定のエクスペリエンスに戻ることができます。 詳細については、「 Azure Databricks プレビューの管理 」を参照してください。

次のスクリーンショットに示すように、 ジョブとパイプラインの 一覧でジョブをフィルター処理できます。

吹き出しが付いたジョブ リスト ビュー。

  1. テキスト検索: [名前 ] フィールドと [ ジョブ ID ] フィールドでキーワード検索がサポートされています。 キーと値で作成されたタグを検索するには、キー、値、またはキーと値の両方で検索できます。 たとえば、キー department と値 finance を持つタグの場合、department または finance を検索して一致するジョブを見つけることができます。 キーと値で検索するには、キーと値をコロンで区切って入力します (例: department:finance)。
  2. 種類: ジョブのみ、パイプライン、またはすべてを選択します。
  3. 所有者: 自分が所有するジョブやパイプラインのみを選択してください。
  4. お気に入り: お気に入りとしてマークしたすべてのジョブまたはパイプラインを選択します。
  5. タグ: タグを使用します。 タグで検索するには、[タグ] ドロップダウン メニューを使用して、最大 5 つのタグを同時にフィルター処理するか、キーワード検索を直接使用します。
  6. 実行方法: 最大 2 つの run as 値でフィルター処理します。

ジョブまたはパイプラインを開始するには、再生アイコンの再生ボタンをクリックします。 ワークフローを停止するには、[ 停止] アイコン の停止ボタンをクリックします。 他のアクションにアクセスするには、Kebab メニューの Kebab メニュー アイコンをクリックします。 たとえば、このメニューからワークフローを削除したり、パイプラインの設定にアクセスしたりできます。

ビューは 1 つのジョブに対して実行されます

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

  1. Azure Databricks ワークスペースのサイドバーで、ジョブ & パイプライン をクリックします。

  2. 必要に応じて、ジョブ私が所有 フィルターを選択します。

  3. ジョブの [名前] リンクをクリックします。

    アクティブな実行と完了した実行のマトリックス ビューとリスト ビューを含む [実行] タブが表示されます。

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

ジョブ マトリックス ビュー。

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

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

ジョブの実行およびタスクの実行のバーは、実行の状態を示すために色分けされています。 成功した実行は緑色です。 失敗した実行は赤色、スキップされた実行はピンク色、再試行を待機している実行は黄色です。 保留中、キャンセル済み、またはタイムアウトは灰色です。 個々のジョブの実行とタスクの実行バーの高さは、実行時間を視覚的に示します。

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

既定では、実行リスト ビューには次の情報が表示されます。

  • 実行の開始時刻。
  • 実行識別子。
  • 実行が、ジョブ スケジュールまたは API 要求によってトリガーされたか、手動で開始されたか。
  • 現在実行中のジョブの経過時間または完了した実行の合計実行時間。 時間が構成した 予想完了時間を超えると、警告が表示されます。
  • 実行の状態 (キューに登録保留中実行中スキップ成功失敗タイムアウトキャンセル中、または 取り消し済み)。
  • 実行が終了したエラー コード。
  • 実行パラメーター。

現在アクティブな実行では、停止ボタンが表示されます。 アクティブな実行とキューに置かれたすべての実行を停止するには、[実行 キャンセル] を選択するか、ドロップダウン メニューから [キューに置かれたすべての実行 を取り消す] を します。

Kebab メニュー アイコンを使用します。完了した実行のエントリの削除など、コンテキスト固有の追加アクションの実行に使用します。

実行のコンテキスト固有のアクションにアクセスするには、kebab メニュー の Kebab メニュー アイコン をクリックします (たとえば、アクティブな実行を停止したり、完了した実行を削除したりします)。

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

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

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

ジョブ実行の詳細を表示する

[ジョブの実行の詳細] ページには、ジョブ出力とログへのリンクが表示されます。これには、ジョブの実行内の各タスクの成功または失敗に関する情報が含まれます。 ジョブの [実行] タブからジョブ実行の詳細にアクセスできます。

[実行] タブからジョブの実行詳細を表示するには、実行一覧ビューの [開始時刻] 列にある該当実行のリンクをクリックします。 ジョブの [実行] タブに戻るには、 [ジョブ ID] の値をクリックします。

複数のタスクを含むジョブには、さらにグラフ、タイムライン、リスト ビューがあります。

グラフ ビュー

グラフ内のタスク ノードをクリックすると、次のようなタスク実行の詳細が表示されます。

  • 実行名、ジョブの起動方法、開始時刻、終了時刻、期間、状態などのタスクの詳細。
  • ソース コード。
  • タスクを実行したクラスターと、そのクエリ履歴とログにリンクします。
  • タスクのメトリック。

ジョブ グラフ ビュー。

タイムライン表示

複数のタスクを含むジョブには、完了に時間がかかっているタスクを特定し、依存関係と重複を理解して、これらのジョブをデバッグおよび最適化するためのタイムライン ビューがあります。

ジョブのタイムライン ビュー。

リスト ビュー

既定では、リスト ビューには状態、名前、種類、リソース、期間、依存関係が表示されます。 このビューでは、列を追加および削除できます。

タスクを名前で検索し、タスクの状態またはタスクの種類でフィルター処理し、タスクを状態、名前、または期間で並べ替えることができます。

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

ジョブリストビュー

Azure Databricks は、ジョブの実行状態をどのように判定しますか ?

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

  • 成功: すべてのタスクが成功した。
  • 成功したが失敗がある: 一部のタスクが失敗したが、すべてのリーフ タスクは成功した。
  • 失敗: 1 つ以上のリーフ タスクが失敗した。
  • スキップ済み: ジョブの実行がスキップされました (たとえば、ジョブまたはワークスペースの最大同時実行数を超えるとタスクはスキップされることがあります)。
  • タイムアウト: ジョブの実行に時間がかかりすぎて完了できず、タイムアウトしました。
  • キャンセル済み: ジョブの実行が取り消されました (たとえば、ユーザーが実行中の実行を手動で取り消した場合など)。

ストリーミング タスクのメトリックを表示する

重要

Lakeflow ジョブのストリーミング可観測性は パブリック プレビュー段階です

ジョブ実行の詳細を表示すると、ジョブ UI でストリーミング監視メトリックを使用してストリーミング ワークロードのデータを取得できます。 これらのメトリックには、Apache Kafka、Amazon Kinesis、自動ローダー、Google Pub/Sub、Delta テーブルなど、Spark Structured Streaming でサポートされるソースのバックログ秒、バックログ バイト、バックログ レコード、バックログ ファイルが含まれます。 メトリックは、タスクの実行の詳細を表示すると、右側のウィンドウにグラフとして表示されます。 各グラフに表示されるメトリックは、分単位で集計された最大値であり、過去 48 時間まで含めることができます。

各ストリーミング ソースでは、特定のメトリックのみがサポートされます。 ストリーミング ソースでサポートされていないメトリックは、UI で表示できません。 次の表は、サポートされているストリーミング ソースで使用できるメトリックを示しています。

ソース バックログ バイト数 バックログ レコード バックログ秒数 バックログ ファイル
Kafka
キネシス
デルタ
自動ローダー
Google Pub/Sub (グーグルパブサブ)

また、各ストリーミング メトリックのしきい値を指定し、タスクの実行中にストリームがしきい値を超えた場合に通知を構成することもできます。 低速ジョブ の通知を構成するを参照してください。

サポートされている構造化ストリーミング ソースの 1 つからデータをストリーミングするタスク実行のストリーミング メトリックを表示するには:

  1. [ジョブ実行の詳細] ページで、指標を表示するタスクをクリックします。
  2. タスク実行 ペインで、[メトリック] タブをクリックします。
  3. メトリックのグラフを開くには、メトリック名の横 右キャレット をクリックします。
  4. 特定のストリームのメトリックを表示するには、stream_idを[フィルターテキスト ボックス]に入力します。 ストリーム ID はジョブ実行の 出力 にあります。
  5. メトリック グラフの期間を変更するには、時間ドロップダウン メニューを使用します。
  6. 実行にストリームが10を超えて含まれている場合にストリームをスクロールするには、[次へ] または [前へ] をクリックします。

ストリーミングの可観測性の制限事項

  • 1 回の実行に 4 つ以上のストリームがない限り、メトリックは 1 分ごとに更新されます。 実行に 4 つ以上のストリームがある場合、メトリックは 5 分ごとに更新されます。
  • メトリックは、各実行の最初の 50 ストリームに対してのみ収集されます。
  • メトリックは 1 秒間隔で収集されます。 triggerInterval設定が 1 秒未満の場合、メトリックが表示されないことがあります。
  • ほとんどのデータ ソースでは、既定でストリーミング メトリックが収集されます。 ただし、他のユーザーの場合は、この機能を有効にする必要があります。 データ ソースがストリーミング メトリックを収集していない場合は、 spark.sql.streaming.metricsEnabled フラグを True に設定します。

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

タスクの実行履歴 (成功した実行と失敗した実行を含む) を表示するには、次の操作を行います。

  1. [ジョブの実行の詳細] ページでタスクをクリックします。 [タスクの実行の詳細] ページが表示されます。
  2. [実行履歴] ドロップダウン メニューでタスクの実行を選択します。

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

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

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

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

各タスクの実行履歴を表示するジョブ。

すべてのジョブでの最近のジョブの実行を表示する

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

  1. [ワークフロー] アイコンをクリックします。サイドバーのジョブとパイプライン
  2. ジョブの実行」タブをクリックして、「完了した実行数」グラフと「ジョブの実行」一覧を表示します。

完了した実行数グラフ

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

ジョブが完了した作業回数グラフ。

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

完了した実行数 は、次のように実行の状態でフィルター処理できます。

  • 現在実行中または実行を待機しているジョブを表示するようにグラフを更新するには、 [アクティブな実行]をクリックします。
  • 失敗、成功、スキップされた実行など、完了した実行のみを表示するようにグラフを更新するには、 [完了した実行]をクリックします。
  • 過去 48 時間に正常に完了した実行のみを表示するようにグラフを更新するには、 [成功した実行]をクリックします。
  • スキップされた実行のみを表示するようにグラフを更新するには、 [スキップされた実行]をクリックします。 ワークスペースでの同時実行の最大数を超えたか、ジョブの構成で指定された同時実行の最大数を超えた場合、実行はスキップされます。
  • エラー状態で完了した実行のみを表示するようにグラフを更新するには、 [失敗した実行]をクリックします。

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

完了した実行数 グラフに表示される時間範囲を制限するには、グラフ内のカーソルをクリックしてドラッグし、時間範囲を選択します。 グラフと実行テーブルが更新され、選択した時間範囲の実行のみが表示されます。

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

実行中のジョブ一覧

[ジョブの実行] タブには、過去 60 日間のジョブ実行のテーブルも含まれています。 既定では、テーブルには失敗したジョブ、スキップされたジョブ、成功したジョブの実行に関する詳細が含まれます。

ジョブ実行リスト

次に基づいて、一覧に表示される実行の一覧をフィルター処理できます。

  • ジョブ: 最大 3 つのジョブを選択し、これらのジョブの実行のみを確認します。
  • 実行方法: 最大 3 つの実行を ID として選択し、これらのユーザーとして実行された実行のみを表示します。
  • 時間枠: この間隔で発生したジョブの実行を絞り込むには、開始日時と終了日時を選択して選択します。
  • 実行状態: アクティブ (現在実行中)、完了 (成功した実行と失敗した実行を含む実行が完了)、成功、失敗、スキップされた実行のみを表示するようにフィルター処理します。
  • エラー コード: エラー コードに基づいて一覧をフィルター処理し、同じエラー コードで失敗したすべてのジョブを表示します。

既定では、runs テーブル内の実行の一覧には次の情報が表示されます。

  • 実行の開始時刻。
  • 実行に関連付けられたジョブの名前。
  • ジョブの実行に使用されるユーザー名。
  • 実行が、ジョブ スケジュールまたは API 要求によってトリガーされたか、手動で開始されたか。
  • 現在実行中のジョブの経過時間または完了した実行の合計実行時間。 時間が構成した 予想完了時間を超えると、警告が表示されます。
  • 実行の状態: キューに登録された保留中実行中スキップされた成功した失敗したタイムアウトキャンセル中キャンセルされた
  • 実行が終了したエラー コード。
  • 実行に関する任意のパラメーター。
  • 実行中のジョブを停止するには、停止ボタンをクリックします。 ジョブのアクションにアクセスするには、 Kebab メニュー アイコン をクリックします (たとえば、アクティブな実行を停止したり、完了した実行を削除したりします)。

実行リストに表示される列を変更するには、 Settings icon をクリックして、列を選択または選択解除します。

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

ジョブの系列情報を表示する

ワークスペースで Unity Catalog が有効になっている場合は、ワークフロー内の任意の Unity Catalog テーブルに関する 系列情報 を表示できます。 ワークフローで系列情報が使用可能な場合は、ジョブの [ジョブの詳細] パネル、ジョブ実行の [ジョブ実行の詳細] パネル、またはタスク実行の [タスク実行の詳細] パネルに、アップストリーム テーブルとダウンストリーム テーブルの数を含むリンクが表示されます。 このリンクをクリックすると、テーブルの一覧が表示されます。 テーブルをクリックすると、 Catalog Explorerに詳細情報が表示されます。

Databricks アセット バンドルを使用して作成されたジョブを表示して実行する

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

ただし、ジョブをすぐに変更する必要がある場合は、ジョブをバンドル構成から切断して、UI でジョブ設定の編集を有効にすることができます。 ジョブを切断するには、 [Disconnect from source]\(ソースから切断\)をクリックします。 [Disconnect from source]\(ソースから切断\) ダイアログで、 [切断] をクリックして確定します。

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

ジョブ実行結果をエクスポートする

すべてのジョブの種類について、ノートブックの実行結果とジョブ実行ログをエクスポートできます。

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

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

1 つのタスクを含むジョブに対してノートブックの実行結果をエクスポートするには:

  1. [ジョブの詳細] ページで、[完了した実行 (過去 60 日)] テーブルの [実行] 列にある実行の [詳細の表示] リンクをクリックします。
  2. [HTML にエクスポート] をクリックします。

複数のタスクを含むジョブに対してノートブックの実行結果をエクスポートするには:

  1. [ジョブの詳細] ページで、[完了した実行 (過去 60 日)] テーブルの [実行] 列にある実行の [詳細の表示] リンクをクリックします。
  2. エクスポートするノートブック タスクをクリックします。
  3. [HTML にエクスポート] をクリックします。

ジョブ実行ログをエクスポートする

ジョブ実行のログをエクスポートすることもできます。 ジョブのコンピュートを構成する際に、ログを DBFS に自動的に配信するようにジョブを設定できます(コンピューティング構成のリファレンスを参照)、または、ジョブ API を使って設定することもできます。 Jobs API の新しいジョブの作成操作 (POST /jobs/create) に渡される要求本文の new_cluster.cluster_log_conf オブジェクトを参照してください。