3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Databricks】Monitor alertsを試してみた

Last updated at Posted at 2024-01-05

背景・目的

【Databricks】Lakehouse Monitoringを試してみた」の続きで、Lakehouse Monitoringでのアラートの監視を試してみます。

まとめ

  • 2024/1/5現在で、パブリックプレビューです。
  • モニターアラートは、他のDatabricks SQLアラートと同じ方法で作成可能
    • Databricks SQLクエリは、モニタープロファイルメトリックテーブル、ドリフトメトリックテーブルに作成する
    • クエリのSQLアラートを作成する。
    • 必要な頻度でクエリーを評価し、アラートがトリガーされた場合に通知を送信するようにアラートを構成できる
  • 通知先は下記の通り
    • メール(デフォルト)
    • Slack、Pagedutyなどにも送信可能

概要

アラートの監視について整理します。

このページでは、モニターメトリクステーブルからのメトリクスに基づいて Databricks SQL アラートを作成する方法について説明します。 モニターアラートの一般的な用途には、次のようなものがあります。

  • 統計が特定の範囲外に移動したときに通知を受け取ります。 たとえば、欠損値の割合が特定のレベルを超えたときに通知を受け取るとします。
  • データの変更の通知を受け取ります。 ドリフトメトリクステーブルには、データ分布の変化を追跡する統計が格納されます。
  • ベースライン テーブルと比較してデータがドリフトした場合に通知を受け取ります。 アラートを設定して、データの変更を調査したり、 InferenceLog 分析のためにモデルを再トレーニングする必要があることを示すことができます。
  • モニターアラートの一般的な用途
    • 統計が特定の範囲外に移動したときに通知を受ける
    • データの変更の通知を受け取る
    • ベースラインテーブルと比較してデータがドリフトした場合に通知を受ける

モニター アラートは、他の Databricks SQL アラートと同じ方法で作成および使用されます。 Databricks SQL クエリー は、モニター プロファイル メトリック テーブルまたはドリフト メトリック テーブルに作成します。次に、このクエリーの Databricks SQL アラートを作成します。 必要な頻度でクエリーを評価し、アラートがトリガーされた場合に通知を送信するようにアラートを構成できます。 デフォルトにより、Eメール通知が送信されます。 ウェブフックを設定したり、SlackやPagerdutyなどの他のアプリケーションに通知を送信したりすることもできます。

  • モニターアラートは、他のDatabricks SQLアラートと同じ方法で作成可能
    • Databricks SQLクエリは、モニタープロファイルメトリックテーブル、ドリフトメトリックテーブルに作成する
    • クエリのSQLアラートを作成する。
    • 必要な頻度でクエリーを評価し、アラートがトリガーされた場合に通知を送信するようにアラートを構成できる
  • 通知先は下記の通り
    • メール(デフォルト)
    • Slack、Pagedutyなどにも送信可能

実践

事前準備

  1. Workspaceにサインインします。

  2. こちらで作成したproductsテーブルを選択します。
    image.png

  3. ①「Quality」タブをクリックし、②「Get started」をクリックします。
    image.png

  4. マニュアル更新で作成します。
    image.png

  5. Refresh metricsをクリックします。
    image.png

  6. しばらくしてから、「View refresh history」をクリックします。
    image.png

  7. Refreshが完了していました。
    image.png

  8. View dashboardをクリックします。
    image.png

  9. ダッシュボードが確認できました。
    image.png

アラートの設定

アラートを設定します。

  1. Row countの①「:」メニューをクリックし、②「View query」をクリックしSQLエディタを開きます。
    image.png

  2. ①「:」メニューをクリックし、②「Create alert」をクリックします。
    image.png

  3. 10件超えたらアラートを出すように設定します。
    image.png

  4. 画面右上の「Refresh」をクリックします。
    image.png

  5. OKになりました。

アラートの確認

  1. 下記のクエリを実行し、20件の追加します。

    INSERT INTO test.retail.products (product_id, product_name, price, stock)
    VALUES
    (103, 'ラズベリー', 91.74, 145),
    (104, 'マンゴー', 132.79, 77),
    (105, 'ブルーベリー', 140.19, 186),
    (106, 'アボカド', 206.82, 114),
    (107, 'パパイア', 229.05, 49),
    (108, 'プラム', 251.57, 193),
    (109, 'アボカド', 154.91, 83),
    (110, 'ブルーベリー', 119.88, 44),
    (111, 'ラズベリー', 96.07, 104),
    (112, 'パパイア', 150.68, 58),
    (113, '梨', 157.68, 11),
    (114, 'ブルーベリー', 259.92, 26),
    (115, 'プラム', 214.2, 72),
    (116, 'グレープフルーツ', 70.72, 186),
    (117, 'オレンジ', 253.94, 25),
    (118, 'イチゴ', 95.68, 168),
    (119, 'キウイ', 220.74, 25),
    (120, 'スイカ', 267.77, 100),
    (121, 'アボカド', 196.17, 100),
    (122, 'ラズベリー', 197.52, 76);
    
  2. 再び「Refresh」をクリックします。

  3. OKのままです。期待としてはエラーになってほしいところでした。

  4. Catalog Explorerに戻り、「Refresh metrics」をクリックします。
    image.png

  5. 完了しました。
    image.png

  6. 再びAlertに戻り、「Refresh」をクリックします。

  7. 「TRIGGERED」になりました。

  8. ダッシュボードを確認し、「Refresh」をクリックすると、件数は22件になりました。期待値としてはグラフ上でアラートがわかるようにしてほしいところ。
    image.png

考察

今回、Lakehouse monitoringで作成した項目に対してしきい値を設けてAlertを発生することを確認しました。
Lakehouse monitoringで蓄積されたデータを活かしたアラートの検知ができると便利だと感じました。

  • Alertが発生したら Lakehouse monitoringのダッシュボードで目視で確認できること
    • 例えば、背景や文字の色を変えるなど
  • 静的な比較以外にも動的な式を設定できること
    - 例えば、AWS GlueのAnomaly Detectionのように、過去の値のうち最小値と最大値を設定し、そのレンジから外れた場合に、エラーにするなど
    • こちらは、カスタムでAlertを作れば実装できますね。

今後、機能が追加されることを期待しています。

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?