Databricks SQL アラート
ベータ版
この機能は ベータ版です。
このページでは、Databricks SQL アラートを有効にして使用し、クエリの実行を自動化し、カスタム条件を評価し、それらの条件が満たされたときに通知を配信するためのステップ バイ ステップのガイダンスを提供します。アラートを使用すると、ビジネス データをプロアクティブに監視し、報告された値が予想されるしきい値を超えたときにタイムリーな通知を受け取ることができます。アラートをスケジュールすると、基になるクエリの既存のスケジュールに関係なく、アラートに関連付けられたクエリが実行され、アラート条件がチェックされます。さらに、アラート履歴にアクセスして、過去のアラート評価の結果を確認できます。
代わりにレガシ アラートを使用する方法については、「 レガシ アラートとは」を参照してください。
ワークスペースでアラートを有効にする
ほとんどの顧客にとって、ワークスペース管理者は [プレビュー] ページからこのプレビューへのワークスペースへのアクセスを制御できます。 ワークスペースにこのバージョンのアラートが表示されない場合は、Databricks アカウント チームにお問い合わせください。
このプレビューを有効にしても、既存のアラートには影響しません。これらのアラートと従来のアラートの両方を引き続き並行して使用できます。
アラートの表示と整理
サイドバーの アラート をクリックして、アラートリストページを開きます。
-
アラート タブは デフォルト によって開き、ワークスペース内のすべてのアラートが表示されます。名前でフィルタリングするように入力できます。[ 自分のアラートのみ ] をクリックすると、自分が所有者であるアラートのみが表示されます。
-
レガシー アラート タブには、以前のアラート システムを使用して作成されたアラートが表示されます。
-
名前 には、各アラートの文字列名が表示されます。
-
ステータス は、アラートのステータスが [
TRIGGERED
]、[OK
] 、または [UNKNOWN
] のいずれであるかを示します。 -
スケジュール には、最終更新日時または最終更新日が表示されます。
-
[所有者] には、アラートの所有者のユーザー名が表示されます。
-
[作成日] には、アラートが作成された日時が表示されます。
TRIGGERED
は、最新の実行で、ターゲット クエリの 値 列が、設定した 条件 と しきい値 を満たしたことを意味します。アラートで「cats」が1500を超えているかどうかを確認した場合、「cats」が1500を超えている限り、アラートがトリガーされます。OK
は、最新のクエリ実行で、 値 列が構成した 条件 と しきい値 を満たしていなかったことを意味します。これは、 アラート が以前にトリガーされていなかったという意味ではありません。「cats」の値が 1470 の場合、アラートはOK
と表示されます。UNKNOWN
は、Databricks SQL にアラート条件を評価するための十分なデータがないことを示します。このステータスは、アラートを作成した直後に表示され、クエリが実行されるまで残ります。このステータスは、クエリ結果にデータがなかった場合、または最新のクエリ結果に設定した 値列 が含まれていない場合にも使用されます。ERROR
アラートの評価中にエラーが発生したことを示します。
アラートを作成する
このセクションの手順では、次の図に示すアラートを作成する方法について説明します。ラベルと説明を使用して、各コンポーネントを理解します。
- データセット: アラートを生成するクエリを記述してテストします。
- 条件: アラート通知をトリガーする値のしきい値を選択します。このセクションからクエリを実行して条件をテストできます。
- スケジュール: アラートを実行する定期的なスケジュールを設定します。
- 通知: ユーザーまたは通知先で、しきい値が予想される範囲外になった場合にアラートを表示するように指定します。
- Advanced: 詳細設定を使用して、特別な値と条件でアラートを発します。
ベータ期間中、アラートは パラメーターを含むクエリをサポートしません。「レガシーアラートとは」を参照してください。
アラートを作成するには、次の手順に従います。
-
サイドバー
アラート をクリックし、[ アラートを作成 ]をクリックします。
-
次のクエリをコピーして 、データセット エディタに貼り付けます。
SQLSELECT
to_date(tpep_pickup_datetime) as date,
SUM(fare_amount) as amount
FROM
`samples`.`nyctaxi`.`trips`
GROUP BY
ALL
ORDER BY
1 DESC -
[ 条件 ] フィールドで、アラートをトリガーする条件を設定します。
次に示すように、次の設定を適用します。
- 確認するデータ値として 合計 を選択します。アラート条件は、クエリ結果の列の最初の値に設定することも、SUM や AVERAGE など、1 つの列のすべての行に集計を設定することもできます。
- チェックする列として amount を選択します。
- 適用する論理演算子として > (より大きい) を選択します。
- しきい値を
Static value
の4000 に設定します。デフォルトでは、 静的な値 が選択されています。値フィールドに 4000 を入力します。
-
[ テスト条件 ] をクリックしてアラートをプレビューし、アラートが現在のデータでトリガーされるかどうかをテストします。指定された設定によってアラートがトリガーされます。しきい値を変更して、さらにテストできます。
-
スケジュール ドロップダウン メニューを使用して、アラートが 正時 0 分 から 5 分 ごとに実行されるように設定します。必要に応じて、[ Show cron syntax ] チェックボックスを選択して、 Quartz Cron Syntax でスケジュールを編集します。
-
通知 セクションで、ユーザー名を検索し、表示されたらクリックします。
-
作成 をクリックします。
アラートは保存され、指定したスケジュールで実行されます。この例で使用されているデータは静的であるため、 テスト条件 が トリガーとして 返された場合は、次回の実行時に再びトリガーされます。アラートとしてEメール通知が届きます。 テスト条件 が OK を返した場合、通知は送信されません。
アラートの詳細を確認する
アラートの詳細を表示するページが開きます。さらに、アラート履歴と評価履歴の詳細が表示されます。[ 今すぐ実行 ]ボタンをクリックすると、アラートクエリがすぐに実行され、この画面に結果が返されます。
ページの右上隅にある 編集 をクリックして、アラートの編集を続行します。
詳細設定
Advanced をクリックして、次の設定を適用します。
-
通知日:OK: アラートが
OK
として返されたときに通知を送信します。 -
通知頻度: ステータスが
OK
に戻るまで、アラートに関する通知を定期的に送信します。 -
空の結果の状態: クエリが結果を返さない場合に返すように、特別なステータスを設定します。
-
テンプレート: 通知を送信するには、デフォルトのテンプレートを使用するか、カスタムテンプレートを使用するかを選択できます。次のリストでは、各テンプレートタイプについて説明します。
-
デフォルトのテンプレートを使用する : アラート通知は、アラート設定画面とクエリ画面へのリンクを含むメッセージです。
-
カスタム テンプレートを使用する : アラート通知には、アラートに関するより具体的な情報が含まれます。
-
件名と本文の入力フィールドで構成されるボックスが表示されます。 静的コンテンツはどれでも有効であり、組み込みのテンプレート変数を組み込むことができます。
ALERT_STATUS
: 評価されたアラート ステータス (文字列)。ALERT_CONDITION
: アラート条件演算子 (文字列)。ALERT_THRESHOLD
: アラートのしきい値 (文字列または数値)。ALERT_COLUMN
: アラート列の名前 (文字列)。ALERT_NAME
: アラート名 (文字列)。ALERT_URL
: アラート ページの URL (文字列)。QUERY_NAME
: 関連付けられたクエリ名 (文字列)。QUERY_URL
: 関連付けられたクエリ ページの URL (文字列)。QUERY_RESULT_TABLE
: クエリ結果の HTML テーブル (文字列)。 結果は最初の 100 行に制限されます。 Eメール 通知先のみがHTMLをレンダリングできます。QUERY_RESULT_VALUE
: クエリ結果の値 (文字列または数値)。QUERY_RESULT_ROWS
: クエリ結果の行 (値の配列)。QUERY_RESULT_COLS
: クエリ結果の列 (文字列配列)。
たとえば、件名の例としては、
Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}
. 2. HTML を使用して、カスタム テンプレート内のメッセージを書式設定できます。 Eメール 通知先のみがHTMLをレンダリングできます。 テンプレートでは、次のタグと属性を使用できます。-
タグ:
<a>
、<abbr>
、<acronym>
、<b>
、<blockquote>
、<body>
、<br>
、<code>
、<div>
、<em>
、<h1>
、<h2>
、<h3>
、<h4>
、<h5
> 、<h6
> 、<head
> 、<hr>
、<html>
,<i>
,<li>
,<ol>
,<p>
, ``,<strong>
,<table>
,<tbody>
,<td>
,<th>
,<tr>
,<ul>
-
属性:href (
<a>
用)、タイトル (<a>
、<abbr>
、<acronym>
用)
- プレビュー 切り替えボタンをクリックして、レンダリングされた結果をプレビューします。
-
-
プレビューは、テンプレート変数が正しくレンダリングされていることを確認するのに役立ちます。 これは、通知先ごとに異なる方法で通知を表示する可能性があるため、最終的な通知内容を正確に表しているわけではありません。
ワークスペース管理者は、新しい通知先を設定できます。「通知先を管理する」を参照してください。
アラートの集計
アラートの集計は、アラートにアタッチされた Databricks SQL クエリの元の SQL を変更することで機能します。 アラートは、元のクエリ テキストを共通テーブル式 (CTE) でラップし、それに対してラッピング集計クエリを実行してクエリ結果を集計します。
たとえば、テキスト SELECT 1 AS column_name
を使用してクエリにアタッチされたアラートの SUM
集計は、アラートが更新されるたびに、実行される変更された SQL が WITH q AS (SELECT 1 AS column_name) SELECT SUM(column_name) FROM q
になることを意味します。
つまり、アラートに集計があるたびに、元のクエリ結果 (事前に集計された結果) をアラートのカスタム本文 ( QUERY_RESULT_ROWS
や QUERY_RESULT_COLS
などのパラメーターを使用) に表示することはできません。 代わりに、これらの変数には、集計後の最終的なクエリ結果のみが表示されます。
集計に関連するすべてのトリガー条件は、API ではサポートされていません。
複数の列に対するアラート
クエリの複数の列に基づいてアラートを設定するには、クエリでアラート ロジックと トリガーするアラートのブール値を返します。 例えば:
SELECT CASE WHEN drafts_count > 10000 AND archived_count > 5000 THEN 1 ELSE 0 END
FROM (
SELECT sum(CASE WHEN is_archived THEN 1 ELSE 0 END) AS archived_count,
sum(CASE WHEN is_draft THEN 1 ELSE 0 END) AS drafts_count
FROM queries) data
このクエリは、drafts_count > 10000 and archived_count > 5000
の場合に 1
を返します。その後、値が 1
になったときにアラートがトリガーされるようにアラートを構成できます。
アラート on メトリクス views
メトリクスビューはコアビジネスメトリクスを追跡および測定するように設計されているため、アラートとうまく組み合わせて、メトリクスが予想範囲を超えたときに自動的に通知を受け取ることができます。 メトリクス ビューのアラートは、他のデータセットのアラートと同じように機能します。 クエリを構成するクエリを記述するときは、監視するメトリクスビューの完全修飾名を使用します。
アラートのアクセス許可を構成し、アラートの所有権を譲渡する
アラートのアクセス許可レベルについては、「 アラート ACL」を参照してください。
-
サイドバーで、 アラート をクリックします。
-
アラートをクリックします。
-
アラート詳細ページの右上隅にある 共有 をクリックして、[ 共有 ] ダイアログを開きます。
-
グループとユーザーを検索して選択し、権限レベルを割り当てます。
-
[ 追加 ] をクリックします。
アラートの所有権を譲渡する
アラートを保存すると、アラートの所有者になります。アラートの所有者がワークスペースから削除されると、アラートの所有者は存在しなくなります。ワークスペース管理者ユーザーは、アラートの所有権を別のユーザーに譲渡できます。サービスプリンシパルとグループにアラートの所有権を割り当てることはできません。 Permissions API を使用して所有権を譲渡することもできます。
-
ワークスペース管理者として、Databricksワークスペースにログインします。
-
サイドバーで、 アラート をクリックします。
-
アラートをクリックします。
-
右上の「 共有 」ボタンをクリックして、 共有 ダイアログを開きます。
-
右上の歯車アイコンをクリックし、「 新規所有者を割り当て 」をクリックします。
-
所有権を割り当てるユーザーを選択してください。
-
確認 をクリックします。