メインコンテンツまでスキップ

異常検出に基づいてアラートを設定する

このページでは、異常検出スキャンの結果に基づいてアラートを設定する方法について説明します。異常検出の概要については、 「異常検出」を参照してください。

異常検出出力結果テーブルでDatabricks SQLアラートを構成するには、次のステップに従います。 アラートの設定方法の詳細については、 Databricks SQLアラート」を参照してください。

重要

もちろん、アカウント管理者だけがシステム テーブルにアクセスできますsystem.data_quality_monitoring.table_results 。 他のユーザーがアラートを設定する必要がある場合は、適切なアクセス権を付与してください。

  1. サイドバーの 「アラート」 をクリックし、 「アラートの作成」 をクリックします。

  2. クエリ エディターに次のテキストを入力します。

    SQL
    WITH 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に置き換える必要があります。

  1. クエリを実行します。

  2. 画面右側のアラート エディターを使用して、アラート条件を設定します。詳細については、 「アラートを作成する」を参照してください。

    トリガー条件を設定する

  3. (オプション) 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>

これで、品質問題の下流への影響に基づいてトリガーされるアラートが作成され、アラートをトリガーしたテーブルをデバッグできるようになります。