Skip to main content

新建单表校验规则

说明:新建规则的入口位于规则配置-新建监控规则-单表校验规则,点击之后可进入新建规则的流程。

一、选择监控对象

在下拉列表中选择需要校验的数据源、表,也可以直接输入表名进行搜索。对于存在分区的表,可配置全局参数或直接选择已有分区进行校验。数据质量支持对接控制台全局参数,全局参数包括内置的系统变量和自定义参数,自定义参数可以在控制台配置。每个全局参数可随校验规则的运行时间动态变化,引用方式:${参数名称}。内置的系统变量定义如下:

  1. ${sys.recentPart}:最新分区,系统自动从表的元数据库中获取每个分区的创建时间,并对最新创建的分区进行校验。
  2. ${bdp.system.cyctime}:一个实例的定时运行时间,默认格式为:yyyyMMddHHmmss。
  3. ${bdp.system.bizdate}:一个实例计算时对应的业务日期,业务日期默认为定时运行日期的前一天,以yyyyMMdd的格式显示。
  4. ${bdp.system.currmonth}:一个实例的定时运行时间所在的月份,默认以yyyyMM的格式显示。
  5. ${bdp.system.premonth}:一个实例的定时运行时间的上一个月,以yyyyMM的格式显示。

image-20230314134953031

image-20230314110815753

tip

选择监控对象后,系统会自动检测此表是否已经存在配置的规则,若已存在,可直接前往此表的管理模块,继续添加规则即可。

tip

在数据质量的规则配置模块,每条规则是一条记录。如需在某张表内配置多个规则时,只需在规则配置列表,点击表名,继续添加规则即可。

二、配置监控规则

监控规则有五种类型:完整性校验、准确性校验、规范性校验、唯一性校验、自定义SQL

  • 规则分类:

    1. 完整性校验:空值数、空值率、空串数、空串率
    2. 准确性校验:求和、求平均、负值比、零值比、正值比
    3. 规范性校验:数值-取值范围、数值-枚举范围、数值-枚举个数、格式-身份证号、格式-手机号、格式-邮箱、字符串-最大长度、字符串-最小长度
    4. 唯一性校验:重复数、重复率、非重复个数、非重复占比
    5. 自定义SQL:用户自行编写校验逻辑
  • 规则拼接逻辑:

    1. 统计目标:选择表或字段
    2. 统计函数:选择需要使用的统计函数
    3. 过滤语句:只需要统计表内一部分数据时,可通过过滤语句过滤掉一部分数据,等同于SQL中的where过滤条件。(需注意的是,过滤语句必须以and开头,不区分大小写)
    4. 校验方法:可选择固定值、1天或7天波动检测、月度波动检测、7天平均值波动检测、月度平均值波动检测
    5. 期望值:选择比对符之后输入一个数值,如">10"。规则输出的统计结果如果"< =10",即为校验未通过
    6. 强弱规则:选择规则强弱。强规则-校验未通过或者运行失败时,会影响关联任务的运行状态;弱规则-校验未通过或者运行失败时,不会影响关联任务的运行状态
  • 自定义SQL

    1. 如果现有的表级和字段级规则依然无法满足要求,数据质量也支持添加自定义SQL。 用户在输入框内输入不符合质量要求的明细查询SQL,系统会自动统计结果行数和期望值进行比对。
    tip

    1、如果自定义SQL包含关联查询(join),且两表有重名字段,不支持使用select a. b. 或 select a.id,b.id ,重名字段必须起别名。 2、TiDB数据源类型比较特: - 如果自定义SQL包含关联查询(join)且两表有重名字,则select 语句中不支持有重名字段,写别名也不行 - 不支持select ,select a. 等任何带 * 的SQL

  1. 强弱规则:选择规则强弱。强规则-校验未通过或者运行失败时,会影响关联任务的运行状态;弱规则-校验未通过或者运行失败时,不会影响关联任务的运行状态

三、配置调度属性

  1. 调度周期:
    • 可选择天、周、月、小时的调度周期,也可以选择手动触发
    • 规则拼接包:如果子规则较多,建议设置多个拼接包。系统会根据拼接包数量和规则强弱,将若干个子规则划分至不同的并行任务中运行,每个并行任务的运行状态不会影响其他任务。
  2. 告警配置:可支持邮件、短信、钉钉(钉钉机器人的配置方法请参考钉钉官方帮助文档: 钉钉群机器人是什么)及自定义告警通道。
  3. 任务关联

功能操作:可选择当前用户所在的任意「租户-产品-项目」中已提交的任务。其中的「产品」,目前只支持离线开发平台。

实现逻辑: - 当质量规则关联离线任务后,周期运行质量规则需要满足:1)达到规则自身的「调度周期」配置时间;2)关联的离线任务运行成功; - 当质量规则运行完成后,会给关联离线任务返回「规则强弱」和「规则运行结果」信息,如果是强规则校验未通过/运行失败,则关联的离线任务会置为失败;

功能目的:可有效避免问题数据的落地,阻塞问题数据流入下游。

tip

如果只是数据质量独立部署,未部署离线开发平台,则此处不显示“任务关联”的功能