異常検出に基づいてアラートを設定する
このページでは、異常検出スキャンの結果に基づいてアラートを設定する方法について説明します。異常検出の概要については、 「異常検出」を参照してください。
異常検出出力結果テーブルでDatabricks SQLアラートを構成するには、次のステップに従います。 アラートの設定方法の詳細については、 Databricks SQLアラート」を参照してください。
もちろん、アカウント管理者だけがシステム テーブルにアクセスできますsystem.data_quality_monitoring.table_results 。 他のユーザーがアラートを設定する必要がある場合は、適切なアクセス権を付与してください。
-
サイドバーの 「アラート」 をクリックし、 「アラートの作成」 をクリックします。
-
クエリ エディターに次のテキストを入力します。
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>
これで、品質問題の下流への影響に基づいてトリガーされるアラートが作成され、アラートをトリガーしたテーブルをデバッグできるようになります。