数据质量
数据质量
数据质量用于在数据进入报表和业务分析之前,对数据集或数据库表进行自动校验。您可以创建可复用的数据质量模型,设置过滤范围和校验规则,通过手动、定时、事件或离线任务触发校验,并在运行实例中查看异常详情和接收告警。
适用场景
- 检查关键表必需字段、空值、重复值和枚举值等常见问题。
- 校验数值范围、字符串格式或自定义业务规则。
- 在离线开发任务中增加质量卡点,避免异常数据继续流向下游。
- 通过调度和告警持续跟踪数据质量。
使用前准备
使用数据质量前,请确认:
- 您对待监控的数据集或数据库表拥有使用权限。
- 如需监控数据库表,您还需要拥有对应数据账户和数据表的访问权限。
- 如需配置告警,请提前确认通知渠道和接收人可用。
- 如需在离线开发任务中引用模型,请确认您是模型的所有者、协作者或使用者。
角色与权限
平台角色决定您能否创建和管理数据质量模型,模型角色决定您可以对某个具体模型执行哪些操作。
平台角色
| 平台角色 | 可用能力 |
| 管理员 | 可查看全部可监控对象,并在权限范围内创建、维护和运行模型。 |
| 普通用户 | 可查看和监控自己有使用权限的数据集或数据库表,并在权限范围内维护模型。 |
| 只读用户 | 默认仅可查看模型、实例和运行结果 |
模型角色
| 操作 | 所有者 | 协作者 | 使用者 |
| 查看详情 | 支持 | 支持 | 支持 |
| 编辑模型 | 支持 | 支持 | 不支持 |
| 配置调度和告警 | 支持 | 支持 | 不支持 |
| 运行模型 | 支持 | 支持 | 支持 |
| 在离线开发中引用 | 支持 | 支持 | 支持 |
| 删除模型 | 支持 | 不支持 | 不支持 |
| 管理模型角色 | 支持 | 不支持 | 不支持 |
模型创建人会自动成为唯一所有者,且所有者不可新增、删除或替换。协作者可以是管理员或普通用户;使用者可以是管理员、普通用户或只读用户。
查看和查找模型
进入「数据质量模型」列表后,您可以查看模型名称、监控对象、规则数、调度状态、告警状态、最近运行时间和最新修改时间。

您可以:
- 输入模型名称或监控对象名称进行模糊搜索。
- 按监控对象类型、告警状态或最近修改时间筛选。
- 按最近运行时间或最新修改时间排序。
- 滚动到列表底部加载更多数据。
- 单击模型名称进入详情,或通过操作区编辑、运行和查看实例。
- 单击「清空条件」恢复默认筛选和排序。
创建数据质量模型
- 在数据质量模型列表中单击「新建模型」。
- 输入模型名称。
- 选择监控对象类型:
- 数据集:选择一个有权访问的数据集。
- 数据库表:先选择数据账户,再选择该账户下的数据表。
- 可选:填写模型描述
- 可选:配置过滤条件。未配置时默认校验监控对象的全量数据。
- 添加并配置至少一条质量规则。
- 单击「保存」。创建成功后返回模型列表。
切换监控对象类型会清空已选的数据集、数据账户、数据表和过滤条件,请确认后再切换。

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

- 选择监控对象后,在「过滤条件配置」中单击「编辑规则」。
- 在编辑器中输入条件表达式正文,例如:
dt = {{{yesterday}}} AND region = ' 华东 '
- 按需从工具栏插入全局参数或时间宏参数。
- 单击「预览」。系统会解析参数并展示过滤后的前 30 条数据。
- 预览成功后单击「确认」。
注意:
- 只填写条件表达式,不要输入
WHERE关键字。 - 「确认」仅在当前内容最新一次预览成功后可用。
- 预览成功后如果再次修改内容,需要重新预览。
- 单击「取消」不会覆盖页面上已经确认的过滤条件。
- 空过滤条件表示校验全量数据。
配置质量规则
一个模型至少需要保留一条规则。每条规则都需要填写唯一的规则名称、规则类型和相应配置。
支持的规则类型
| 规则类型 | 用途 | 主要配置 |
| 表行数 | 判断表的总行数是否符合预期 | 比较符和比较值 |
| 必须字段 | 检查指定字段是否全部存在 | 一个或多个字段名 |
| 字段类型 | 检查某字段类型是否符合预期 | 校验字段以及预期类型 |
| 异常值 | 统计 Null、空字符串或自定义异常值 | 字段、异常值定义、个数或占比阈值 |
| 重复数 | 检查指定字段的重复情况 | 字段、个数或占比阈值 |
| 枚举值 | 检查数据是否在允许的值列表中 | 字段、枚举值、越界个数或占比阈值 |
| 值域 | 检查数值是否在指定范围内 | 数值字段、最小值和最大值、越界阈值 |
| 值格式 | 使用正则表达式检查字符串格式 | 字符串字段、正则表达式、不合规阈值 |
| 求和、求平均 | 检查指定字段的聚合值 | 校验字段和预期值 |
| 自定义 SQL | 使用 SQL 实现自定义业务校验 | SQL、比较符和期望值 |
自定义 SQL 应返回一行一列数据;如果返回多行多列,系统取第一行第一列作为实际结果。
强规则与弱规则
- 强规则:规则不通过时,模型校验失败,会影响离线开发下游节点继续运行。适合关键完整性和业务底线校验。
- 弱规则:规则不通过时发送预警,但不影响表的最终检测状态和下游任务运行。适合观察性指标或非阻断问题。
编辑模型
在模型列表或详情页单击「编辑」,修改基础信息、过滤条件或质量规则后保存。只有模型所有者和协作者可以编辑。
编辑时请注意:
- 更换监控对象可能使原有字段级规则失效,请重新检查目标字段和规则配置。
- 新修改的过滤条件只有在预览成功并确认后才会覆盖原条件。
查看模型详情
模型详情包含「概览」「调度设置」和「告警通知」三个页签。

在「概览」中可以查看:
- 模型名称、描述和监控对象。
- 当前已确认的过滤条件;未配置时显示默认校验全量数据。
- 各质量规则的类型、目标字段或 SQL、期望值等信息。
- 引用该模型的离线开发任务及节点名称。
页面顶部可根据权限执行编辑、删除、运行和查看实例等操作。
运行模型
模型所有者、协作者和使用者可以手动运行有权访问的模型。单击「运行」后,系统创建一条运行实例。您可以在「查看实例」中跟踪状态和结果。
模型还可以由以下方式触发:
- 定时调度
- 数据集更新事件
- 离线开发任务
- 手动触发
配置调度

- 进入模型详情,打开「调度设置」。
- 单击「编辑」并开启调度。
- 选择调度方式并填写相应配置。
- 单击「保存」。
定时调度
所有监控对象都支持定时调度,可选择:
- 每天:设置每天的执行时间。
- 每周:选择执行日和执行时间。
- 每月:选择每月执行日和执行时间。
每组最多设置 4 个不重复的时间点。
事件调度
只有监控对象为数据集时才支持事件调度。启用后,当对应数据集更新时触发模型运行。数据库表模型仅支持定时调度。
关闭调度后,调度不再生效,但系统会保留原配置,方便后续重新开启。
配置告警

- 进入模型详情,打开「告警通知」。
- 单击「编辑」,开启「运行失败/校验异常告警」。
- 选择通知渠道:邮件、钉钉、飞书、企业微信或自定义渠道。
- 选择至少一名告警接收人。
- 确认或修改告警标题和正文。
- 单击「保存」。
系统默认提供以下模板:
- 标题:
{质量模型名称}有规则不通过/校验失败; - 正文:
{质量模型名称}有规则不通过/校验失败;详情请点击{质量模型实例页面链接};
查看运行实例

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

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

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

实例结果页包含本次运行的完整上下文和每条规则的执行结果。
实例摘要
您可以查看运行状态、触发方式、开始和结束时间、运行时长、规则统计、触发来源、监控对象以及本次使用的过滤条件。
如果过滤条件使用了全局参数或时间宏,页面会显示该实例运行时实际解析出的参数值。查看历史实例时,以当次运行保存的值为准,而不是当前默认值。

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

在离线开发任务中引用模型
参考:数据质量(改)
管理模型角色

只有模型所有者和平台管理员可以打开修改协作者和使用者。
- 在「协作者」中添加或移除管理员、普通用户。
- 在「使用者」中添加或移除管理员、普通用户、只读用户。
- 单击「保存」。
协作者和使用者均可为空。协作者不能删除模型或管理角色;使用者只能查看、运行和引用模型。
删除模型
只有模型所有者可以删除模型。
删除操作不可恢复。若模型已被离线开发任务引用,系统会禁用「删除」,删除前请先先解除离线开发引用。
常见问题
为什么无法创建或编辑模型?
请检查您的平台角色、模型角色以及监控对象权限。只读用户不能创建或编辑模型;模型使用者不能编辑模型。
为什么在选择监控对象时找不到某个数据集或数据库表?
普通用户只能选择自己有使用权限的对象。请向管理员申请对应数据集、数据账户或数据表的访问权限。
为什么过滤条件的「确认」按钮不可用?
当前内容必须完成最新一次成功预览。如果预览后又修改了表达式、参数或格式化结果,请重新预览。表达式中也不能包含 WHERE 关键字。
过滤条件预览失败会影响规则配置或任务发布吗?
不会影响质量规则的新增和编辑。在离线开发节点中,预览失败也不阻塞发布;未确认的内容不会提交,系统继续使用上一次已确认条件,或在没有已确认条件时校验全量数据。
为什么数据库表模型不能选择事件调度?
事件调度依赖数据集更新事件,因此只适用于数据集模型。数据库表模型可以使用定时调度或由其他支持的入口触发。
为什么无法删除模型?
请确认您是模型所有者,并检查模型是否被离线开发任务引用。存在引用关系时,需要先解除引用才能删除。
强规则和弱规则应该如何选择?
会影响下游数据正确性或合规性的关键校验建议使用强规则;只需提醒、暂时不希望阻断任务的校验建议使用弱规则。
历史实例中的参数值为什么和当前参数不同?
实例结果保存并展示当次运行时的实际解析值。参数随后被修改,不会改变历史实例记录。
为什么告警接收人无法选择?
请先选择通知渠道。告警开启时,通知渠道、接收人、标题和正文均为必填项。
使用建议
- 先用弱规则观察数据波动,确认阈值合理后再改为强规则。
- 为模型和规则使用易识别的业务名称,并在描述中写明监控目的和处理负责人。
- 过滤条件尽量使用参数或时间宏,避免每天手工修改日期。
- 为关键模型同时配置调度和告警,并定期检查运行实例。
- 删除模型前先检查关联离线任务,避免影响已有开发流程。