异常情况检测

重要

此功能在 Beta 版中。

本页介绍什么是异常情况检测、它监视的内容以及如何使用它。

重要

异常情况检测使用 默认存储

什么是异常情况检测?

使用异常情况检测,可以轻松监视架构中所有表的数据质量。 Databricks 自动利用数据智能,通过分析历史模式来评估数据质量,特别是评估每个表的完整性和及时性。 数据所有者有权访问日志记录表,这样他们就可以在整个元存储中快速识别和解决异常。 目录资源管理器或治理中心(个人预览版)中提供了目录、架构和表级别的结果。

要求

  • 已启用 Unity Catalog 的工作区。
  • 现有用户需要启用无服务器计算。 详细说明,请参阅连接到无服务器计算
  • 若要对架构启用异常情况检测,必须对目录架构具有 MANAGE SCHEMA 或 MANAGE CATALOG 权限。

异常情况检测的工作原理是什么?

Databricks 创建一个后台作业,用于监视表 的新鲜度完整性。 Databricks 使用智能扫描来确定何时扫描表。

智能扫描会自动将扫描频率与表更新节奏保持一致,确保见解保持最新状态,而无需手动计划。 系统优先处理受欢迎程度和下游使用情况确定的高影响表,而对不太重要的表则减少扫描频率,甚至可能完全跳过。

新鲜度 是指最近更新表的方式。 数据质量监视可分析对表的提交历史记录,并生成每表模型来预测下一次提交的时间。 如果提交异常迟到,表将标记为过时。

完整性 是指预期在过去 24 小时内写入表的行数。 数据质量监视可分析历史行计数,并根据此数据预测一系列预期的行数。 如果过去 24 小时内提交的行数小于此范围的下限,则表将标记为不完整。

注释

事件新鲜度基于事件时间列和引入延迟,仅适用于数据质量监视 beta 版本的用户。 在当前版本中,不支持事件的最新性。

异常情况检测 不会 修改它监视的任何表,也不会为填充这些表的任何作业增加开销。

对模式启用异常检测

若要对架构启用异常情况检测,请导航到 Unity 目录中的架构。

  1. 在架构页上,单击“ 详细信息 ”选项卡。

    目录资源管理器中架构页面的“详细信息”选项卡。

  2. 单击 “启用” 。 在 “数据质量监视 ”对话框中,单击“ 保存”。

  3. 扫描已启动。 Databricks 以相同的更新频率自动扫描每个表,提供最新的见解,而不需要对每个表进行手动配置。 对于在 2025 年 9 月 24 日之前启用的架构,Databricks 针对第一次扫描运行历史数据(“背测试”)的监视器,以检查表的质量,就好像两周前已在架构上启用数据质量监视一样。

  4. 扫描完成后,检测到的质量问题会记录在输出系统表中,并在 UI 中填充见解。 有关详细信息,请参阅 查看异常情况检测记录的结果。 可以随时通过单击“数据质量监视”切换旁边的“查看结果”来访问 UI。

禁用异常情况检测

若要禁用异常情况检测,请执行:

  1. 单击铅笔图标。

    “详细信息”选项卡的“高级”字段中的铅笔图标。

  2. 数据质量监视对话框中,单击切换开关。

    重要

    禁用异常情况检测时,将删除异常情况检测作业和所有异常情况检测表和信息。 此操作不可撤消。

    在“数据质量监视”对话框中切换开关。

  3. 单击“ 保存”。

数据质量监控用户界面

重要

2025 年 10 月 7 日,Databricks 发布了新版本的数据质量监视。 在该日期或之后用于数据质量监控的架构将具有新的结果用户界面。

有关新 UI 的信息,请参阅 在 UI 中查看数据质量监视结果

有关旧 UI 的信息,请参阅数据质量仪表板(旧版)。

Databricks 建议为所有现有架构启用新版本。 将不再更新 beta 版本中的旧仪表板。

若要启用新版本,请使用 “数据质量监视 ”开关禁用该功能,然后再次切换以重新启用该功能。

在 UI 中查看数据质量监视结果

在架构上启用数据质量监视后,可以通过单击“ 查看结果”打开结果页。 您还可以从目录资源管理器中访问所有已启用监控的架构的结果。

结果界面包含目录和模式下拉列表。 选择目录时,架构下拉列表中填充了启用了数据质量监视的目录中的架构。

  • 如果对目录具有 “管理 ”或 SELECT “特权”,则可以在目录级别查看事件。 若要查看目录中的所有事件,请从“架构”下拉菜单中选择“所有架构”。

    从“架构”下拉菜单中选择“所有架构”。

  • 若要查看特定架构的事件,还必须具有该架构的 MANAGESELECT 特权。 选择架构后,仅显示该架构的事件。

UI 有两个主要部分:

  1. 摘要部分:显示所选范围的总体数据质量,包括正常表的百分比和当前监视的架构/表的百分比。
  2. 事件部分:列出所选范围内所有受监视表的事件。 可以根据通过下游影响分析确定的重要表来筛选相关事件。

每个事件记录包括以下详细信息:

  • 原因:表是否由于新鲜度或完整性而不健康。
  • :检测到第一个事件的时间戳。
  • 下游使用情况:根据受影响的下游表数和查询的数量,对下游影响()进行定性度量。
  • 根本原因:有关导致问题的上游作业的信息(有关详细信息,请参阅 查看异常情况检测记录的结果 )。
  • 审核: 指向表格质量页面的链接,可以查看历史趋势和可视化分析,以说明为什么检测到异常。

显示摘要、重要事件和所有事件选项卡的事件 UI。

表质量详细信息

使用“表质量详细信息”UI 可以更深入地了解趋势,并了解在架构中检测到特定表的异常的原因。 可以通过多种方式访问此视图:

  • “结果”UI (新体验)中,单击事件列表中的“审阅”链接。
  • “监视仪表板 ”(旧版 Lakeview 仪表板)中,单击“质量概述”选项卡中的表名称。
  • UC 表查看器中,通过访问表页上的 “质量 ”选项卡。

所有选项都会将你带到所选表的同一 “表质量详细信息 ”视图。

在给定表的情况下,UI 会显示每个质量检查的摘要,并在每个评估时点展示预测值和观察值的图表。 图表绘制了过去一周的数据结果。

用于检测异常的表格质量详细信息界面。

如果表未通过质量审查,UI 还会显示被识别为根本原因的任何上游作业。

表质量详细信息 UI 根本原因表。

设置警报

若要在输出结果表中配置 Databricks SQL 警报,请参阅 基于异常情况检测设置警报

局限性

  • 异常检测不支持视图。
  • 完整性的确定不考虑 null 的占比、零值或 NaN 等指标。

数据质量仪表板(旧版)

注释

数据质量监视仪表板仅适用于旧用户。 在当前版本中,在 UI 中查看数据质量监控结果

第一个数据质量监测运行会创建一个仪表板,以汇总从日志记录表中得出的结果和趋势。 仪表板会自动填充已扫描架构的见解。 在每个工作区中创建一个仪表板,路径为: /Shared/Databricks Quality Monitoring/Data Quality Monitoring

质量概述

质量概述 ”选项卡根据最新评估显示架构中表的最新质量状态摘要。

若要开始,必须输入要分析的架构的日志记录表以填充仪表板。

仪表板的顶部部分显示了扫描结果的概述。

仪表板的“质量概述”选项卡中的数据质量监视器架构摘要。

在摘要的下方有一个表格,列出了按影响分类的质量事件。 任何确定的根本原因都显示在 root_cause_analysis 列中。

仪表板的“质量概述”选项卡中按影响分类的质量事件。

质量事件表下方是一个已识别的静态表,这些静态表在很长一段时间内尚未更新。

为新鲜度和完整性评估设置参数(旧版)

注释

从 2025 年 7 月 21 日起,新客户不支持配置作业参数。 如果需要配置作业设置,请联系 Databricks。

若要编辑控制作业的参数,例如作业的运行频率或记录的结果表的名称,必须在作业页的“ 任务 ”选项卡上编辑作业参数。

显示异常情况检测作业的“作业”页。

以下部分介绍特定设置。 有关如何设置任务参数的信息,请参阅 “配置任务参数”。

计划和通知(旧版)

若要自定义作业的计划或设置通知,请使用作业页上的 “计划和触发器 ”设置。 请参阅 利用计划和触发器自动化作业

日志表名称(旧版)

若要更改日志记录表的名称,或将表保存在其他架构中,请编辑作业任务参数 logging_table_name 并指定所需的名称。 若要将日志记录表保存在其他架构中,请指定完整的 3 级名称。

自定义 freshnesscompleteness 评估(旧版)

本部分中的所有参数都是可选的。 默认情况下,异常情况检测根据表历史记录的分析确定阈值。

这些参数是任务参数 metric_configs内的字段。 格式为具有以下默认值的 metric_configs 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 的评估。

字段名称 Description Example
tables_to_scan 仅扫描指定的表。 ["table_to_scan", "another_table_to_scan"]
tables_to_skip 在扫描期间跳过指定的表。 ["table_to_skip"]
disable_check 扫描未运行。 如果要仅禁用 freshness 扫描或仅禁用 completeness 扫描,请使用此参数。 truefalse

以下参数仅适用于 freshness 评估:

字段名称 Description Example
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 评估:

字段名称 Description Example
table_threshold_overrides 包含表名和行数阈值(指定为整数)的字典。 如果前 24 小时内添加到表中的行数小于指定的阈值,则表示该表将被标记 Unhealthy {"table_0": 1000}