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

異常検知アラート

このページでは、異常検知に関するアラートの設定方法と表示方法について説明します。異常検知の概要については、 「異常検知」を参照してください。

アラートは、古いテーブルや行数の予期せぬ減少など、異常検出によってデータ品質の問題が検出された場合に通知します。アラートは以下の方法で操作できます。

  • データ品質モニタリングUI (ベータ版) : ページを離れることなく、データ品質モニタリングUIから直接アラートを作成および管理します。データ品質モニタリングUIのアラートを参照してください。
  • Databricks SQL: 異常検知出力システムテーブルをクエリしてアラートを設定します。このアプローチは、高度なフィルタリングとカスタム通知テンプレートをサポートします。Databricks SQL でアラートを作成する方法については、こちらをご覧ください。

データ品質モニタリング UI のアラート

備考

ベータ版

この機能はベータ版であり、デフォルトではすべてのユーザーに表示されます。ワークスペース管理者は、 プレビュー ページからこの機能を有効にする必要はありません。

カタログまたはスキーマ内で異常なテーブルが検出されたときに、アラートルールは選択したワークスペースユーザーにEメールで通知します。データ品質モニタリングUIから直接、これらのルールを作成および管理します。

各アラートルールは、カタログまたは特定のスキーマにスコープされます。ルールの適用範囲内で監視対象のテーブルに異常が検出された場合、各受信者はEメールアラートを受け取ります。

必須の権限

アラート ルールを作成または管理するために必要な権限は、ルールのスコープによって異なります。

  • スキーマレベルのアラートを作成するには、スキーマに対するMANAGE権限が必要です。
  • カタログレベルのアラートを作成するには、カタログに対する MANAGE 権限が必要です。

データ品質モニタリングアラートの表示および管理

アラート ルールを表示するには:

  1. カタログエクスプローラーでスキーマに移動します。このスキーマに対してデータ品質モニタリングを有効にする必要があります
  2. 「詳細」 タブをクリックしてください。 [データ品質モニタリング] の横にある [結果の表示] をクリックします。 これにより、データ品質モニタリング UI が開きます。
  3. ページの右上隅にある [アラートの管理] をクリックします。ポップオーバーが開き、各ルールのカタログ、スキーマ、受信者数を含む既存の**アラート**ルールが表示されます。

このポップオーバーから、新しいアラートルールを作成したり、既存のアラートを選択してその範囲や受信者を編集したり、アラートを削除できます。

「アラートを管理」ポップオーバーには、カタログ、スキーマ、および受信者数を含むアラートルールが一覧表示されます。

アラートを作成

アラートを作成するには:

  1. データ品質モニタリング UI の右上隅で、 アラートを管理 をクリックしてアラートのポップオーバーを開きます。

  2. 「**アラートを作成**」をクリックしてください。

  3. アラートルールを設定する:

    • カタログ: 監視するカタログを選択してください。
    • スキーマ :特定のスキーマを選択するか、カタログ内のすべてのスキーマを対象とするカタログレベルの アラート を作成するために、すべてのスキーマを選択します。
    • 通知: 1人以上のワークスペースユーザーを検索して選択し、Eメールで通知します。
  4. 保存 をクリックします。

Databricks SQLでアラートを作成する

重要

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

Databricks SQLを使用して異常検出出力結果テーブルにアラートを作成するには、次のステップに従います。

  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>

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