1. はじめに

皆さんこんにちは。

Databricksには、ノートブックやSQLなどをジョブとして実行する機能があります。

今回はAzure Databricksのジョブ監視方法を3回に分けてご紹介したいと思います。

第1回目は、ジョブのエラーをAzure Log Analyticsに送信する手順をご紹介します。

第1回:ジョブ監視をしてみる(前編) (今回)
第2回:ジョブ監視をしてみる(後編)
第3回:ジョブ監視をしてみる(番外編)

2.準備

2-1.Verbose Audit Logsの有効化

事前に、Verbose Audit Logsを有効化します。

こちらの手順でワークスペースにアクセスします。

画面右上のアカウントを右クリック→Admin Settingsをクリックします。

Workspace settingsをクリックします。

Advancedの中のVerbose Audit LogsをEnabledに変更します。

2-2.SQL作成

続いて、エラーが発生するSQLを作成します。

サイドバーからSQLを選択します。

サイドバーから クエリアイコンをクリックし、展開された画面で をクリックします。

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

画面右上のSaveボタンをクリックします。

クエリの名前と、保存場所を指定してSaveをクリックします。

Queriesをクリック→クエリが保存されている事を確認します。

2-3.ジョブ作成

続いて、ジョブを作成します。

サイドバーからData Science & Engineeringを選択します。

Workflows→Create Jobをクリックします。

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

①・・任意のジョブ名を入力します。
②・・「SQL」を選択します。
③・・「Query」を選択します。
④・・前項で作成したクエリ名を選択します。
⑤・・使用するSQL Warehouseを選択します。※こちらをご参考にSQL Warehouseを事前作成するか、「Starter Warehouse(S)」を指定してください

再度Workflowsからジョブが作成されている事を確認します。

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.ジョブ実行

こちらの手順でワークスペースにアクセスします。

サイドバーからData Science & Engineeringを選択します。

Workflowsを開き、予め作成したジョブを実行します。

 

4-2.診断ログの確認

ジョブ実行が完了したら、診断ログが送信できているかを確認します。

予め作成したAzure Log Analytics Workspaceを開いて、ログをクリックします。

クエリウィンドウにて、以下のように入力し、実行をクリックします。

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

  • TimeGenerated [UTC]・・・UTC時間なので、JSTに変換(+9時間)すると4:19⇒13:19になります。
  • Response – statusCode・・・ステータスコード400でエラーになっている事が分かります。
  • RequestParams – jobid・・・jobIdが194593812588851のジョブがエラーになっています。

4-3.ログの詳細確認

エラーの詳細は、Databricksワークスペースで確認可能です。

こちらの手順でワークスペースにアクセスします。

サイドバーからData Science & Engineeringを選択します。

エラーとなったWorkflowsを開き、検索ウィンドウにエラージョブID「194593812588851」を入力します。

エラーとなったジョブが表示されるので、Last runのFailedリンクをクリックするとエラー内容が確認できます。

または、各ジョブの実行履歴から確認するにはジョブ名をクリックします。

ジョブ履歴が表示されるので、エラーとなった時間帯のリンクをクリックします。

※またはAzure Log Analytics Workspaceの検索結果の「runid」から探すことも可能です

5. まとめ

本記事ではAzure DatabricksジョブのエラーをAzure Log Analytics Workspaceに送信し、

ログをクエリ実行した結果からエラージョブを特定、詳細を確認しました。

後編(次回)では、エラー発生の際にメールを送信する方法をご紹介します。

本連載では、
第1回:ジョブ監視をしてみる(前編) (今回)
第2回:ジョブ監視をしてみる(後編)
第3回:ジョブ監視をしてみる(番外編)

についてご説明しています。

今回の記事が少しでもDatabricksを知るきっかけや、業務のご参考になれば幸いです。

日商エレクトロニクスでは、Azure Databricksの環境構築パッケージを用意しています。

Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!

Azure Databricks連載記事のまとめはこちら
お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら


この記事を書いた人

尾島健介