異常検知アラート
このページでは、異常検知に関するアラートの設定方法と表示方法について説明します。異常検知の概要については、 「異常検知」を参照してください。
アラートは、古いテーブルや行数の予期せぬ減少など、異常検出によってデータ品質の問題が検出された場合に通知します。アラートは以下の方法で操作できます。
- データ品質モニタリングUI (ベータ版) : ページを離れることなく、データ品質モニタリングUIから直接アラートを作成および管理します。データ品質モニタリングUIのアラートを参照してください。
- Databricks SQL: 異常検知出力システムテーブルをクエリしてアラートを設定します。このアプローチは、高度なフィルタリングとカスタム通知テンプレートをサポートします。Databricks SQL でアラートを作成する方法については、こちらをご覧ください。
データ品質モニタリング UI のアラート
ベータ版
この機能はベータ版であり、デフォルトではすべてのユーザーに表示されます。ワークスペース管理者は、 プレビュー ページからこの機能を有効にする必要はありません。
カタログまたはスキーマ内で異常なテーブルが検出されたときに、アラートルールは選択したワークスペースユーザーにEメールで通知します。データ品質モニタリングUIから直接、これらのルールを作成および管理します。
各アラートルールは、カタログまたは特定のスキーマにスコープされます。ルールの適用範囲内で監視対象のテーブルに異常が検出された場合、各受信者はEメールアラートを受け取ります。
必須の権限
アラート ルールを作成または管理するために必要な権限は、ルールのスコープによって異なります。
- スキーマレベルのアラートを作成するには、スキーマに対する
MANAGE権限が必要です。 - カタログレベルのアラートを作成するには、カタログに対する
MANAGE権限が必要です。
データ品質モニタリングアラートの表示および管理
アラート ルールを表示するには:
- カタログエクスプローラーでスキーマに移動します。このスキーマに対してデータ品質モニタリングを有効にする必要があります。
- 「詳細」 タブをクリックしてください。 [データ品質モニタリング] の横にある [結果の表示] をクリックします。 これにより、データ品質モニタリング UI が開きます。
- ページの右上隅にある [アラートの管理] をクリックします。ポップオーバーが開き、各ルールのカタログ、スキーマ、受信者数を含む既存の**アラート**ルールが表示されます。
このポップオーバーから、新しいアラートルールを作成したり、既存のアラートを選択してその範囲や受信者を編集したり、アラートを削除できます。

アラートを作成
アラートを作成するには:
-
データ品質モニタリング UI の右上隅で、 アラートを管理 をクリックしてアラートのポップオーバーを開きます。
-
「**アラートを作成**」をクリックしてください。
-
アラートルールを設定する:
- カタログ: 監視するカタログを選択してください。
- スキーマ :特定のスキーマを選択するか、カタログ内のすべてのスキーマを対象とするカタログレベルの アラート を作成するために、すべてのスキーマを選択します。
- 通知: 1人以上のワークスペースユーザーを検索して選択し、Eメールで通知します。
-
保存 をクリックします。
Databricks SQLでアラートを作成する
もちろん、アカウント管理者だけがシステム テーブルにアクセスできますsystem.data_quality_monitoring.table_results 。 他のユーザーがアラートを設定する必要がある場合は、適切なアクセス権を付与してください。
Databricks SQLを使用して異常検出出力結果テーブルにアラートを作成するには、次のステップに従います。
-
サイドバーの 「アラート」 をクリックし、 「アラートの作成」を クリックします。
-
クエリ エディターに次のテキストを入力します。
SQLWITH rounded_data AS (
SELECT
DATE_TRUNC('HOUR', event_time) AS evaluated_at,
CONCAT(catalog_name, '.', schema_name, '.', table_name) AS full_table_name,
status,
MAX(downstream_impact.num_queries_on_affected_tables) AS impacted_queries,
MAX(freshness.commit_freshness.predicted_value) AS commit_expected,
MAX(freshness.commit_freshness.last_value) AS commit_actual,
MAX(completeness.daily_row_count.min_predicted_value) AS completeness_expected,
MAX(completeness.daily_row_count.last_value) AS completeness_actual
FROM system.data_quality_monitoring.table_results
GROUP BY ALL
)
SELECT
evaluated_at,
full_table_name,
status,
commit_expected,
commit_actual,
completeness_expected,
completeness_actual,
impacted_queries
FROM rounded_data
WHERE
evaluated_at >= current_timestamp() - INTERVAL 6 HOURS
-- enter the minimum number of table violations before the alert is triggered
AND impacted_queries > :min_tables_affected
AND status = 'Unhealthy';
従来のベータ ジョブの場合、既存のアラート構成でsystem.data_quality_monitoring.table_results <catalog>.<schema>._quality_monitoring_summaryに置き換える必要があります。
-
クエリを実行します。
-
画面右側のアラート エディターを使用して、アラート条件を設定します。詳細については、 「アラートの作成」を参照してください。

-
(オプション) E メール テンプレートをカスタマイズするには、画面の右側にある [詳細設定] タブを開き、[テンプレートの カスタマイズ] をオンにしてテンプレート エディターを開きます。
カスタム電子メール テンプレートの例を以下に示します。 カスタム テンプレートの詳細については、 「詳細設定」を参照してください。
Html<h4>The following tables are failing quality checks in the last hour</h4>
<table>
<tr>
<td>
<table>
<tr>
<th>Table</th>
<th>Expected Staleness</th>
<th>Actual Staleness</th>
<th>Expected Row Volume</th>
<th>Actual Row Volume</th>
<th>Impact (queries)</th>
</tr>
{<a id='QUERY_RESULT_ROWS'/>}
<tr>
<td>{{full_table_name}}</td>
<td>{{commit_expected}}</td>
<td>{{commit_actual}}</td>
<td>{{completeness_expected}}</td>
<td>{{completeness_actual}}</td>
<td>{{impacted_queries}}</td>
</tr>
{{/QUERY_RESULT_ROWS}}
</table>
</td>
</tr>
</table>
これで、品質問題の下流への影響に基づいてトリガーされるアラートが作成され、アラートをトリガーしたテーブルをデバッグできるようになります。