跳到主要内容

数据质量

数据质量

数据质量用于在数据进入报表和业务分析之前,对数据集或数据库表进行自动校验。您可以创建可复用的数据质量模型,设置过滤范围和校验规则,通过手动、定时、事件或离线任务触发校验,并在运行实例中查看异常详情和接收告警。

适用场景

  • 检查关键表必需字段、空值、重复值和枚举值等常见问题。
  • 校验数值范围、字符串格式或自定义业务规则。
  • 在离线开发任务中增加质量卡点,避免异常数据继续流向下游。
  • 通过调度和告警持续跟踪数据质量。

使用前准备

使用数据质量前,请确认:

  • 您对待监控的数据集或数据库表拥有使用权限。
  • 如需监控数据库表,您还需要拥有对应数据账户和数据表的访问权限。
  • 如需配置告警,请提前确认通知渠道和接收人可用。
  • 如需在离线开发任务中引用模型,请确认您是模型的所有者、协作者或使用者。

角色与权限

平台角色决定您能否创建和管理数据质量模型,模型角色决定您可以对某个具体模型执行哪些操作。

平台角色

平台角色可用能力
管理员可查看全部可监控对象,并在权限范围内创建、维护和运行模型。
普通用户可查看和监控自己有使用权限的数据集或数据库表,并在权限范围内维护模型。
只读用户默认仅可查看模型、实例和运行结果

模型角色

操作所有者协作者使用者
查看详情支持支持支持
编辑模型支持支持不支持
配置调度和告警支持支持不支持
运行模型支持支持支持
在离线开发中引用支持支持支持
删除模型支持不支持不支持
管理模型角色支持不支持不支持

模型创建人会自动成为唯一所有者,且所有者不可新增、删除或替换。协作者可以是管理员或普通用户;使用者可以是管理员、普通用户或只读用户。

查看和查找模型

进入「数据质量模型」列表后,您可以查看模型名称、监控对象、规则数、调度状态、告警状态、最近运行时间和最新修改时间。

您可以:

  • 输入模型名称或监控对象名称进行模糊搜索。
  • 按监控对象类型、告警状态或最近修改时间筛选。
  • 按最近运行时间或最新修改时间排序。
  • 滚动到列表底部加载更多数据。
  • 单击模型名称进入详情,或通过操作区编辑、运行和查看实例。
  • 单击「清空条件」恢复默认筛选和排序。

创建数据质量模型

  1. 在数据质量模型列表中单击「新建模型」。
  2. 输入模型名称。
  3. 选择监控对象类型:
  • 数据集:选择一个有权访问的数据集。
  • 数据库表:先选择数据账户,再选择该账户下的数据表。
  1. 可选:填写模型描述
  2. 可选:配置过滤条件。未配置时默认校验监控对象的全量数据。
  3. 添加并配置至少一条质量规则。
  4. 单击「保存」。创建成功后返回模型列表。

切换监控对象类型会清空已选的数据集、数据账户、数据表和过滤条件,请确认后再切换。

配置过滤条件

过滤条件用于限定本次质量校验的数据范围。例如,只校验某个业务日期或某个地区的数据。

  1. 选择监控对象后,在「过滤条件配置」中单击「编辑规则」。
  2. 在编辑器中输入条件表达式正文,例如:

dt = {{{yesterday}}} AND region = ' 华东 '

  1. 按需从工具栏插入全局参数或时间宏参数。
  2. 单击「预览」。系统会解析参数并展示过滤后的前 30 条数据。
  3. 预览成功后单击「确认」。

注意:

  • 只填写条件表达式,不要输入 WHERE 关键字。
  • 「确认」仅在当前内容最新一次预览成功后可用。
  • 预览成功后如果再次修改内容,需要重新预览。
  • 单击「取消」不会覆盖页面上已经确认的过滤条件。
  • 空过滤条件表示校验全量数据。

配置质量规则

一个模型至少需要保留一条规则。每条规则都需要填写唯一的规则名称、规则类型和相应配置。

支持的规则类型

规则类型用途主要配置
表行数判断表的总行数是否符合预期比较符和比较值
必须字段检查指定字段是否全部存在一个或多个字段名
字段类型检查某字段类型是否符合预期校验字段以及预期类型
异常值统计 Null、空字符串或自定义异常值字段、异常值定义、个数或占比阈值
重复数检查指定字段的重复情况字段、个数或占比阈值
枚举值检查数据是否在允许的值列表中字段、枚举值、越界个数或占比阈值
值域检查数值是否在指定范围内数值字段、最小值和最大值、越界阈值
值格式使用正则表达式检查字符串格式字符串字段、正则表达式、不合规阈值
求和、求平均检查指定字段的聚合值校验字段和预期值
自定义 SQL使用 SQL 实现自定义业务校验SQL、比较符和期望值

自定义 SQL 应返回一行一列数据;如果返回多行多列,系统取第一行第一列作为实际结果。

强规则与弱规则

  • 强规则:规则不通过时,模型校验失败,会影响离线开发下游节点继续运行。适合关键完整性和业务底线校验。
  • 弱规则:规则不通过时发送预警,但不影响表的最终检测状态和下游任务运行。适合观察性指标或非阻断问题。

编辑模型

在模型列表或详情页单击「编辑」,修改基础信息、过滤条件或质量规则后保存。只有模型所有者和协作者可以编辑。

编辑时请注意:

  • 更换监控对象可能使原有字段级规则失效,请重新检查目标字段和规则配置。
  • 新修改的过滤条件只有在预览成功并确认后才会覆盖原条件。

查看模型详情

模型详情包含「概览」「调度设置」和「告警通知」三个页签。

在「概览」中可以查看:

  • 模型名称、描述和监控对象。
  • 当前已确认的过滤条件;未配置时显示默认校验全量数据。
  • 各质量规则的类型、目标字段或 SQL、期望值等信息。
  • 引用该模型的离线开发任务及节点名称。

页面顶部可根据权限执行编辑、删除、运行和查看实例等操作。

运行模型

模型所有者、协作者和使用者可以手动运行有权访问的模型。单击「运行」后,系统创建一条运行实例。您可以在「查看实例」中跟踪状态和结果。

模型还可以由以下方式触发:

  • 定时调度
  • 数据集更新事件
  • 离线开发任务
  • 手动触发

配置调度

  1. 进入模型详情,打开「调度设置」。
  2. 单击「编辑」并开启调度。
  3. 选择调度方式并填写相应配置。
  4. 单击「保存」。

定时调度

所有监控对象都支持定时调度,可选择:

  • 每天:设置每天的执行时间。
  • 每周:选择执行日和执行时间。
  • 每月:选择每月执行日和执行时间。

每组最多设置 4 个不重复的时间点。

事件调度

只有监控对象为数据集时才支持事件调度。启用后,当对应数据集更新时触发模型运行。数据库表模型仅支持定时调度。

关闭调度后,调度不再生效,但系统会保留原配置,方便后续重新开启。

配置告警

  1. 进入模型详情,打开「告警通知」。
  2. 单击「编辑」,开启「运行失败/校验异常告警」。
  3. 选择通知渠道:邮件、钉钉、飞书、企业微信或自定义渠道。
  4. 选择至少一名告警接收人。
  5. 确认或修改告警标题和正文。
  6. 单击「保存」。

系统默认提供以下模板:

  • 标题:{质量模型名称}有规则不通过/校验失败;
  • 正文:{质量模型名称}有规则不通过/校验失败;详情请点击{质量模型实例页面链接};

查看运行实例

在模型列表或详情页单击「查看实例」,可查看模型的历史运行记录。

实例列表展示实例编号、触发方式、开始和结束时间、运行时长、运行状态、规则总数、异常规则数及触发来源。您可以按运行状态、触发方式和开始时间筛选,也可以排序、刷新并滚动加载更多记录。

运行状态包括:成功、失败、部分异常、运行中和已停止。

  • 单击实例编号或「查看结果」查看规则级结果。
  • 对运行中的实例,管理员或普通用户可单击「停止」。

查看实例结果

实例结果页包含本次运行的完整上下文和每条规则的执行结果。

实例摘要

您可以查看运行状态、触发方式、开始和结束时间、运行时长、规则统计、触发来源、监控对象以及本次使用的过滤条件。

如果过滤条件使用了全局参数或时间宏,页面会显示该实例运行时实际解析出的参数值。查看历史实例时,以当次运行保存的值为准,而不是当前默认值。

规则结果

规则结果包括规则名称、类型、目标字段、规则详情、规则类型、执行结果、期望和实际结果。执行结果包括通过、异常、失败。

在离线开发任务中引用模型

参考:数据质量(改)

管理模型角色

只有模型所有者和平台管理员可以打开修改协作者和使用者。

  1. 在「协作者」中添加或移除管理员、普通用户。
  2. 在「使用者」中添加或移除管理员、普通用户、只读用户。
  3. 单击「保存」。

协作者和使用者均可为空。协作者不能删除模型或管理角色;使用者只能查看、运行和引用模型。

删除模型

只有模型所有者可以删除模型。

删除操作不可恢复。若模型已被离线开发任务引用,系统会禁用「删除」,删除前请先先解除离线开发引用。

常见问题

为什么无法创建或编辑模型?

请检查您的平台角色、模型角色以及监控对象权限。只读用户不能创建或编辑模型;模型使用者不能编辑模型。

为什么在选择监控对象时找不到某个数据集或数据库表?

普通用户只能选择自己有使用权限的对象。请向管理员申请对应数据集、数据账户或数据表的访问权限。

为什么过滤条件的「确认」按钮不可用?

当前内容必须完成最新一次成功预览。如果预览后又修改了表达式、参数或格式化结果,请重新预览。表达式中也不能包含 WHERE 关键字。

过滤条件预览失败会影响规则配置或任务发布吗?

不会影响质量规则的新增和编辑。在离线开发节点中,预览失败也不阻塞发布;未确认的内容不会提交,系统继续使用上一次已确认条件,或在没有已确认条件时校验全量数据。

为什么数据库表模型不能选择事件调度?

事件调度依赖数据集更新事件,因此只适用于数据集模型。数据库表模型可以使用定时调度或由其他支持的入口触发。

为什么无法删除模型?

请确认您是模型所有者,并检查模型是否被离线开发任务引用。存在引用关系时,需要先解除引用才能删除。

强规则和弱规则应该如何选择?

会影响下游数据正确性或合规性的关键校验建议使用强规则;只需提醒、暂时不希望阻断任务的校验建议使用弱规则。

历史实例中的参数值为什么和当前参数不同?

实例结果保存并展示当次运行时的实际解析值。参数随后被修改,不会改变历史实例记录。

为什么告警接收人无法选择?

请先选择通知渠道。告警开启时,通知渠道、接收人、标题和正文均为必填项。

使用建议

  • 先用弱规则观察数据波动,确认阈值合理后再改为强规则。
  • 为模型和规则使用易识别的业务名称,并在描述中写明监控目的和处理负责人。
  • 过滤条件尽量使用参数或时间宏,避免每天手工修改日期。
  • 为关键模型同时配置调度和告警,并定期检查运行实例。
  • 删除模型前先检查关联离线任务,避免影响已有开发流程。