目次
1. はじめに
皆さんこんにちは。
Databricksには、ノートブックやSQLなどをジョブとして実行する機能があります。
今回はAzure Databricksのジョブ監視方法を3回に分けてご紹介したいと思います。
第1回目は、ジョブのエラーをAzure Log Analyticsに送信する手順をご紹介します。
第1回:ジョブ監視をしてみる(前編) (今回)
第2回:ジョブ監視をしてみる(後編)
第3回:ジョブ監視をしてみる(番外編)
2.準備
2-1.Verbose Audit Logsの有効化
事前に、Verbose Audit Logsを有効化します。
こちらの手順でワークスペースにアクセスします。
画面右上のアカウントを右クリック→「設定」をクリックします。

「ワークスペース管理者」の設定部分で、「Advanced」タブをクリックし、「Verbose Audit Log」を「オン」に変更してください。

2-2.SQL作成
続いて、エラーが発生するSQLを作成します。
サイドバーのSQLの部分から「クエリー」を選択して、「クエリーを作成」をクリックします。

ジョブでエラーになるように、存在しないテーブルをSELECTするSQLを記述します。

画面右上の保存アイコンをクリックします。

保存場所を指定して「移動」をクリックします。

* ツールバーの上部でクエリの名前を変更することができます。

「クエリー」をクリック→クエリが保存されている事を確認します。
2-3.ジョブ作成
続いて、ジョブを作成します。
サイドバーの「データエンジニアリング」の部分から「ジョブラン」を選択して、「ジョブを作成」をクリックします。

「ノートブック」をクリックします。

下記①~④を入力して、Createをクリックします。

①・・任意のジョブ名を入力します。
②・・「SQL」を選択します。
③・・「Query」を選択します。
④・・前項で作成したクエリ名を選択します。
⑤・・使用するSQL Warehouseを選択します。※こちらをご参考にSQL Warehouseを事前作成するか、「Starter Warehouse(S)」を指定してください
必要な情報を入力した後、「タスクを作成」をクリックします。
3.ジョブ監視設定
3-1.Azure Log Analytics作成
ジョブの診断ログはAzure Log Analytics Workspaceに送信します。
そのため、まずはAzure Log Analytics Workspaceを作成していきます。
Azureポータルにログインし、リソースの作成をクリックします。

検索ウィンドウにログ分析と入力→表示されたログ分析(OMS)をクリックします。

作成をクリックします。

各項目を入力して、「確認と作成」をクリックします。

確認画面で、「作成」をクリックします。

3-2.Databricks診断ログの設定
続いて、ジョブの診断ログをAzure Log Analytics Workspaceに送信する設定を行います。
Azureポータルから対象のAzure Databricksの「診断設定」をクリックします。

「+診断設定を追加する」をクリックします。

各項目を設定して、「保存」ボタンをクリックします。

①・・・診断設定の名前を入力します。
②・・・Databricks Jobsにチェックを入れます
③・・・[Log Analytics ワークスペースへの送信]にチェックを入れて、Log Analyticsの情報を設定します。
「診断設定」の画面に戻り、作成した診断設定が存在する事を確認します。

以上でジョブ監視の設定は完了です。
4. ジョブ監視設定の確認
実際にジョブを実行してログを確認していきます。(今回はこここまでです)
4-1.ジョブ実行
こちらの手順でワークスペースにアクセスします。
「ジョブとパイプライン」を開き、予め作成したジョブを実行します。
4-2.診断ログの確認
ジョブ実行が完了したら、診断ログが送信できているかを確認します。
予め作成したAzure Log Analytics Workspaceを開いて、ログをクリックします。
クエリウィンドウにて、以下のように入力し、実行をクリックします。
|
1 2 |
DatabricksJobs | where ActionName contains "Failed" |

エラーとなったジョブの情報が取れました。さらに、レコードを展開します。

- TimeGenerated [UTC]・・・UTC時間なので、JSTに変換(+9時間)すると4:19⇒13:19になります。
- Response – statusCode・・・ステータスコード400でエラーになっている事が分かります。
- RequestParams – jobid・・・jobIdが1114783905799567のジョブがエラーになっています。
4-3.ログの詳細確認
エラーの詳細は、Databricksワークスペースで確認可能です。
こちらの手順でワークスペースにアクセスします。
エラーとなった「ジョブとパイプライン」を開き、検索ウィンドウにエラージョブID「1114783905799567」を入力します。

エラーとなったジョブが表示されます。

※またはAzure Log Analytics Workspaceの検索結果の「runid」から探すことも可能です
5. まとめ
本記事ではAzure DatabricksジョブのエラーをAzure Log Analytics Workspaceに送信し、
ログをクエリ実行した結果からエラージョブを特定、詳細を確認しました。
後編(次回)では、エラー発生の際にメールを送信する方法をご紹介します。
本連載では、
第1回:ジョブ監視をしてみる(前編) (今回)
第2回:ジョブ監視をしてみる(後編)
第3回:ジョブ監視をしてみる(番外編)
についてご説明しています。
今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。
双日テックイノベーションでは、Azure Databricksの環境構築パッケージを用意しています。
Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!
Azure Databricks連載記事のまとめはこちら
お問い合わせはこちら
この記事を読んだ方へのオススメコンテンツはこちら
この記事を書いた人
- 尾島健介
この投稿者の最新の記事
- 2023年4月18日ブログ【Azure Databricks】ジョブ監視をしてみる(番外編)
- 2023年4月17日ブログ【Azure Databricks】ジョブ監視をしてみる(後編)
- 2023年4月13日ブログ【Azure Databricks】ジョブ監視をしてみる(前編)
- 2023年3月30日ブログ【Azure Databricks クラスタ管理】「SQL Warehouse作成」をしてみる
