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

異常検出

備考

プレビュー

この機能は パブリック プレビュー段階です。

このページでは、異常検出とは何か、何を監視するのか、そしてどのように使用するのかについて説明します。

重要

異常検出ではデフォルトのストレージが使用されます。

異常検出とは何ですか?

異常検出を使用すると、スキーマ内のすべてのテーブルのデータ品質を簡単に監視できます。Databricks は、履歴パターンを確認してデータ品質を自動的に評価し、特に各テーブルの完全性と最新性を評価することで、データ インテリジェンスを活用します。データ所有者はログ テーブルにアクセスできるため、メタストア全体の異常を迅速に特定して解決できます。カタログ、スキーマ、テーブル レベルの結果は、カタログ エクスプローラーまたはガバナンス ハブ (プライベート プレビュー) で確認できます。

要件

  • Unity Catalog対応ワークスペースであること。
  • 既存ユーザーはサーバレスコンピュートを有効にする必要があります。 手順については、 「サーバレス コンピュートへの接続」を参照してください。
  • スキーマで異常検出を有効にするには、カタログ スキーマに対する MANAGE SCHEMA または MANAGE CATALOG 権限が必要です。

異常検出はどのように機能しますか?

Databricks は、テーブルの 最新性完全性 を監視するバックグラウンド ジョブを作成します。Databricks はインテリジェント スキャンを使用して、テーブルをスキャンするタイミングを決定します。

インテリジェント スキャンにより、スキャン頻度がテーブルの更新頻度に合わせて自動的に調整され、手動でスケジュールを設定しなくても知見が最新の状態に保たれます。 システムは、人気度と下流の使用状況に基づいて影響度の高いテーブルを優先し、重要度の低いテーブルはスキャン頻度を低くするか、完全にスキップします。一部のテーブルを手動で除外するには、モニターの作成またはモニターの更新 API を使用して、除外するテーブルを指定するようにパラメーターexcluded_table_full_namesを設定します。詳細については、 APIドキュメントを参照してください。

鮮度 とは、テーブルがどれくらい最近更新されたかを指します。データ品質モニタリングは、テーブルへのコミットの履歴を分析し、テーブルごとのモデルを構築して、次のコミットの時間を予測します。 コミットが異常に遅い場合、テーブルは古いものとしてマークされます。

完全性 とは、過去 24 時間にテーブルに書き込まれると予想される行数を指します。データ品質モニタリングは、過去の行数を分析し、このデータに基づいて、予想される行数の範囲を予測します。 過去 24 時間にコミットされたローの数がこの範囲の下限より小さい場合、テーブルは未完了としてマークされます。

注記

イベントの鮮度は、イベント時間の列と取り込みの待ち時間に基づいており、データ品質モニタリング ベータ版のユーザーのみが利用できました。 現在のバージョンでは、イベントの鮮度はサポートされていません。

異常検出では、監視するテーブルは 変更されず 、これらのテーブルにデータを入力するジョブにオーバーヘッドが追加されることもありません。

完全性のためのパーセントヌル

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。「Databricks プレビューの管理」を参照してください。

パーセント null は、 完全性の ために追加の品質詳細を追加します。パーセント NULL は、過去 24 時間にテーブルに書き込まれた行のうち、特定の列に NULL 値があると予想される行の割合です。データ品質モニタリングでは、各列の履歴傾向を分析し、このデータに基づいて範囲を予測します。 過去 24 時間の列の NULL の割合がこの範囲の上限よりも高い場合、テーブルは不完全としてマークされます。

スキーマで異常検出を有効にする

スキーマで異常検出を有効にするには、 Unity Catalog内のスキーマに移動します。

  1. スキーマ ページで、 [詳細] タブをクリックします。

    カタログ エクスプローラーのスキーマ ページの詳細タブ。

  2. [有効にする] をクリックします。 [データ品質モニタリング] ダイアログで、 [保存] をクリックします。

  3. スキャンが開始されます。Databricks各テーブルを更新の頻度と同じ頻度で自動的にスキャンし、各テーブルを手動で構成しなくても最新の情報を提供します。 2025 年 9 月 24 日より前に有効になっていたスキーマの場合、 Databricks最初のスキャンでヒストリカルデータのモニター (「バックテスト」) を実行し、2 週間前にスキーマでデータ品質モニタリングが有効になっていたかのようにテーブルの品質をチェックしました。

  4. スキャンが完了すると、検出された品質問題が出力システム テーブルに記録され、知見が UI に入力されます。 詳細については、 「異常検出のログに記録された結果を確認する」を参照してください。 データ品質モニタリング トグルの横にある [結果を表示] をクリックすると、いつでも UI にアクセスできます。

異常検出を無効にする

異常検出を無効にするには:

  1. 鉛筆アイコンをクリックします。

    詳細タブの [詳細] フィールドにある鉛筆アイコン。

  2. 「データ品質モニタリング」 ダイアログで、トグルをクリックします。

重要

異常検出を無効にすると、異常検出ジョブとすべての異常検出テーブルおよび情報が削除されます。この操作は元に戻せません。

データ品質モニタリングダイアログのトグルスイッチ。 3. 保存 をクリックします。

データ品質モニタリング UI

重要

2025 年 10 月 7 日、 Databricksデータ品質モニタリングの新バージョンをリリースしました。 その日以降にデータ品質モニタリングが有効になったスキーマには、新しい結果 UI が表示されます。

新しい UI については、 「UI でのデータ品質モニタリング結果の表示」を参照してください。

レガシー UI の詳細については、 「データ品質ダッシュボード (レガシー)」を参照してください。

Databricks では、既存のすべてのスキーマに対して新しいバージョンを有効にすることをお勧めします。ベータ版のレガシーダッシュボードは更新されなくなります。

新しいバージョンを有効にするには、 データ品質モニタリングトグルを 使用して機能を無効にし、もう一度トグルして再度有効にします。

データ品質モニタリング結果を UI で表示する

スキーマでデータ品質モニタリングを有効にすると、 [結果の表示] をクリックして結果ページを開くことができます。 カタログ エクスプローラーでモニタリングが有効になっているすべてのスキーマの結果にアクセスすることもできます。

結果 UI には、カタログとスキーマのドロップダウンが含まれています。カタログを選択すると、スキーマのドロップダウンに、データ品質モニタリングが有効になっているそのカタログ内のスキーマが表示されます。

  • カタログに対する MANAGE または SELECT 権限を持っている場合は、カタログ レベルでインシデントを表示できます。カタログ内のすべてのインシデントを表示するには、 「スキーマ」 ドロップダウン メニューから 「すべてのスキーマ」 を選択します。

    スキーマ ドロップダウン メニューからすべてのスキーマを選択します。

  • 特定のスキーマのインシデントを表示するには、そのスキーマに対する MANAGE または SELECT 権限も必要です。スキーマを選択すると、そのスキーマのインシデントのみが表示されます。

結果ページの上部には概要セクションが表示され、正常なテーブルの割合や現在監視されているスキーマ/テーブルの割合など、選択したスコープの全体的なデータ品質が表示されます。このセクションの下には、選択したスコープ内のすべての監視対象テーブルのインシデントをリストする表があります。ボタンを使用して、 異常正常 、または エラー テーブルを表示します。

概要、重要なインシデント、およびすべてのインシデントのタブを表示するインシデント UI。

次の表では、列について説明します。列は、 [Unhealthy][Healthy] 、または [Error] のいずれを選択するかによって若干異なります。

説明

ステータス

HealthyUnhealthy 、またはTraining

最初に検出された

最初のインシデントが検出された時。 「不健康」 タブにのみ表示されます。

最終スキャン

テーブルが最後にスキャンされた日時。 [健康] タブにのみ表示されます。

理由:

テーブルが新鮮さや完全性のために不健康であるかどうか。 「不健康」 タブにのみ表示されます。

根本原因

問題の原因となっている上流ジョブに関する情報 (詳細については、「異常検出のログに記録された結果を確認する」を参照してください)。 「不健康」 タブにのみ表示されます。

インパクト

影響を受けるダウンストリーム テーブルとクエリの数に基づいた、ダウンストリームの影響の質的尺度 ( 、または )。

スキャン頻度

過去 1 週間にテーブルがスキャンされた頻度。

結果

異常が検出された理由を説明する履歴傾向と視覚化を表示できるテーブル品質ページへのリンク。

エラー状態

エラーメッセージ。 エラー タブにのみ表示されます。

詳細

エラー メッセージの詳細。 エラー タブにのみ表示されます。

メタストアレベルの結果を表示する

このセクションでは、ワークスペースにインポートできるテンプレートを提供します。このテンプレートは、メタストア全体のすべての品質結果を表示できるダッシュボードを作成します。

このテンプレートを使用するには、 system.data_quality_monitoring.table_resultsテーブルへのアクセス権が必要です。デフォルトでは、アカウント管理者のみがこのテーブルにアクセスできます。必要に応じて他のユーザーにアクセス権を付与できます。

テンプレートの使い方

以下の手順に従います。

  1. テンプレート ファイルをダウンロードします: metastore-quality-dashboard.lvdash. JSON
  2. ワークスペースサイドバーで、ダッシュボードアイコン ダッシュボード
  3. 右上隅の 「ダッシュボードの作成」 ドロップダウン メニューから 「ファイルからダッシュボードをインポート」 を選択します。
  4. ダイアログで、 「ファイルの選択」 をクリックし、テンプレート ファイルに移動して、 「ダッシュボードのインポート」 をクリックします。

ファイルがインポートされ、ダッシュボードが表示されます。

メタストア レベルのデータ品質ダッシュボードの例。

テーブル品質の詳細

テーブル品質の詳細 UI を使用すると、傾向を詳しく分析し、スキーマ内の特定のテーブルで異常が検出された理由を把握できます。このビューにはいくつかの方法でアクセスできます。

  • 結果 UI (新しいエクスペリエンス) から、インシデント リストのレビュー リンクをクリックします。
  • モニタリング ダッシュボード (従来のLakeviewダッシュボード) から、[品質概要] タブのテーブル名をクリックします。
  • UC テーブル ビューアー から、テーブル ページの [品質] タブにアクセスします。

どのオプションを選択しても、選択したテーブルの同じ テーブル品質詳細 ビューが表示されます。

テーブルが指定されると、UI にはテーブルの各品質チェックの概要と、各評価タイムスタンプでの予測値と観測値のグラフが表示されます。グラフには過去 1 週間のデータの結果がプロットされます。

異常検出のためのテーブル品質詳細 UI。

テーブルが品質チェックに合格しなかった場合、UI には根本原因として特定された上流のジョブも表示されます。

テーブル品質詳細 UI 根本原因テーブル。

アラートを設定する

出力結果テーブルでDatabricks SQLアラートを構成するには、 「異常検出に基づいてアラートを設定する」を参照してください。

制限事項

  • 異常検出はビューをサポートしていません。
  • 完全性の判定には、null、ゼロ値、NaN の割合などのアカウント メトリクスは考慮されません。

レガシー異常検出

次のセクションでは、データ品質ダッシュボードと異常検出ジョブ構成という 2 つのレガシー機能について説明します。異常検出の現在のバージョンにはこれらの機能は含まれていません。ダッシュボードは、データ品質モニタリング結果 UIに置き換えられました。

データ品質ダッシュボード(レガシー)

データ品質ダッシュボード(レガシー)

注記

The data quality monitoring dashboard was available only to legacy users. In the current version, use View data quality monitoring results in the UI.

最初のデータ品質モニターの実行により、ログ テーブルから得られた結果と傾向をまとめたダッシュボードが作成されます。ダッシュボードには、スキャンされたスキーマの知見が自動的に入力されます。 このパス: /Shared/Databricks Quality Monitoring/Data Quality Monitoringのワークスペースごとに 1 つのダッシュボードが作成されます。

品質の概要

品質概要」 タブには、最新の評価に基づいて、スキーマ内のテーブルの最新の品質状態の概要が表示されます。

開始するには、ダッシュボードに入力するために、分析するスキーマのログ テーブルを入力する必要があります。

ダッシュボードの上部には、スキャンの結果の概要が表示されます。

ダッシュボードの「品質概要」タブにあるデータ品質モニター スキーマの概要。

概要の下には、品質インシデントを影響別にリストした表があります。特定された根本原因はroot_cause_analysis列に表示されます。

ダッシュボードの「品質概要」タブに、影響別の品質インシデントが表示されます。

品質インシデント テーブルの下には、長期間更新されていない、識別された静的テーブルのテーブルがあります。

新鮮さと完全性の評価のための設定 (レガシー)

新鮮さと完全性の評価のための設定 (レガシー)

注記

Starting from July 21, 2025, configuration of the job parameters is not supported for new customers. If you need to configure the job settings, contact Databricks.

ジョブの実行頻度やログに記録された結果テーブルの名前など、ジョブを制御する課題を編集するには、ジョブ ページの タスクタブ でジョブ課題を編集する必要があります。

異常検出ジョブを表示するジョブ ページ。

次のセクションでは、具体的な設定について説明します。タスク確保の設定方法については、 「タスク確保の構成」を参照してください。

スケジュールと通知(レガシー)

ジョブのスケジュールをカスタマイズしたり、通知を設定したりするには、[ジョブ] ページの [ スケジュールとトリガー] 設定を使用します。 「スケジュールとトリガーを使用したジョブの自動化」を参照してください。

ログテーブルの名前(レガシー)

ログ テーブルの名前を変更するか、テーブルを別のスキーマに保存するには、ジョブ タスクパラメーターlogging_table_nameを編集し、目的の名前を指定します。 ログ テーブルを別のスキーマに保存するには、完全な 3 レベルの名前を指定します。

freshnesscompleteness評価をカスタマイズする(レガシー)

このセクションの懸念はすべてオプションです。 デフォルトでは、異常検出はテーブルの履歴の分析に基づいてしきい値を決定します。

これらは課題metric_configs内のフィールドです。 metric_configsの形式は、次のデフォルト値を持つ JSON 文字列です。

JSON
[
{
"disable_check": false,
"tables_to_skip": null,
"tables_to_scan": null,
"table_threshold_overrides": null,
"table_latency_threshold_overrides": null,
"static_table_threshold_override": null,
"event_timestamp_col_names": null,
"metric_type": "FreshnessConfig"
},
{
"disable_check": true,
"tables_to_skip": null,
"tables_to_scan": null,
"table_threshold_overrides": null,
"metric_type": "CompletenessConfig"
}
]

次の懸念は、 freshnesscompleteness両方の評価に使用できます。

フィールド名

説明

tables_to_scan

指定されたテーブルのみがスキャンされます。

["table_to_scan", "another_table_to_scan"]

tables_to_skip

指定されたテーブルはスキャン中にスキップされます。

["table_to_skip"]

disable_check

スキャンは実行されません。freshnessスキャンのみ、またはcompletenessスキャンのみを無効にする場合は、この引数を使用します。

true, false

次の懸念は、 freshness評価にのみ適用されます。

フィールド名

説明

event_timestamp_col_names

スキーマ内のテーブルに含まれる可能性のあるタイムスタンプ列のリスト。テーブルにこれらの列のいずれかがある場合、この列の最大値を超えるとUnhealthyとマークされます。このパラメーターを使用すると、評価時間とコストが増加する可能性があります。

["timestamp", "date"]

table_threshold_overrides

テーブル名としきい値 (秒単位) で構成される辞書。テーブルをUnhealthyとしてマークするまでの最後のテーブル更新以降の最大間隔を指定します。

{"table_0": 86400}

table_latency_threshold_overrides

テーブル名とレイテンシしきい値 (秒単位) で構成される辞書。テーブルをUnhealthyとしてマークするまでの、テーブルの最後のタイムスタンプからの最大の間隔を指定します。

{"table_1": 3600}

static_table_threshold_override

テーブルが静的テーブル (つまり、更新されなくなったテーブル) と見なされるまでの時間 (秒単位)。

2592000

次の懸念は、 completeness評価にのみ適用されます。

フィールド名

説明

table_threshold_overrides

テーブル名と行ボリュームしきい値 (整数として指定) で構成される辞書。過去 24 時間にテーブルに追加された行数が指定されたしきい値より少ない場合、テーブルはUnhealthyとマークされます。

{"table_0": 1000}