跳到主要内容

质检作业

质检作业

使用场景:用户在数据开发前先要保证数据质量,可数据集成后通过数据质检作业检查已入仓的数据质量。

使用角色:数据开发人员。

功能描述:平台提供质检作业构建能力,通过将内置质检规则和自定义质检规则与质检对象绑定以实现质量问题的发现。内置规则指通用性高,大多数据表都能使用的规则,包括空值、格式、范围、枚举值、符合关键字等;自定义规则提供了一套扩展机制,通过正则表达式来满足内置规则之外的业务需求。

分组配置

进入数据质检 > 质检作业界面,点击左侧目录栏中“新建”按钮,根据页面内容填写信息后“保存”即可。
数据质检

注意
  • 支持同级分组拖拽移动排序;
  • 可直接在新建分组时关联作业,一个作业只能同时关联一个分组,新建分组页面展示所有未关联分组的作业;
  • 若作业未关联分组,则无法通过分组树过滤出对应作业,需在列表中自行搜索所需的未分组作业。

配置质检作业

新建

  1. 进入数据质检 > 质检作业界面,点击质检作业界面上方的“新建质检作业”按钮,在新建界面按要求填写相关配置后“保存”即可。

数据质检

  • 基本信息

    • 名称:必填,用户根据实际业务场景手动输入作业名称,支持中英文,空间内不允许重复;
    • 所属分组:非必填,下拉配置作业所属分组;
    • 描述:非必填,填写该作业的描述信息。
  • 质检资产

    • 质检资产:必填,单选,下拉可选择数仓内各层级的数据表、及最新版本的主数据表(带“主”标签的即是),支持名称模糊检索;选择后会自动展示该表基本信息。
    • 质检数据抽样:必填,默认为100%,即全量质检;选择其他数据比例后,质检时按比例对质检列的数据进行随机抽样参与质检。
注意
  • 若开启业务权限管控,质检资产会自动过滤掉当前操作用户无权限数据表;且作业保存时会校验作业运行人是否拥有作业内所有数据表的对应业务权限,校验通过方可保存成功;
  • 质检目标数据表不可选择其他空间授权的跨空间数据表;
  • 质检数据抽样为随机抽样,由于每次抽样数据可能不同,因此质检结果可能存在差异;
  • 随机抽样是基于数据行的,每次返回的数量相差不多,但也不保证每次查询出来的数据行数一样,0.1并不是严格按总条数*0.1,而是按伯努力离散分布。
  • 质检规则
    点击“新建规则”按钮,出现新增质检规则弹窗后,根据实际业务需求填写界面信息并配置规则后 “保存” 即可。
    • 平台提供内置规则和自定义规则两种规则类型,内置规则作用于字段,提供大多数数据都能使用的规则,包括空值、格式、范围、枚举值、符合关键字等;
    • 自定义规则作用于表,需用户选择计算逻辑后手动输入自定义逻辑条件,例如 age > 0 and age < 120,也支持系统参数,如 age > #{value}。

数据质检

  • 质检规则填写项说明
    • 名称:定义质量规则的名称,同一作业内不允许重复;
    • 类型:包括内置规则和自定义规则;
    • 作用对象:内置规则校验对象为字段,可多选质检表的字段;自定义规则校验对象为表,无需配置,默认为质检表;
    • 计算逻辑:下拉单选具体的计算逻辑,内置规则包含多个可直接使用的内置计算逻辑,无需再自主编写SQL或正则;自定义规则包含两种计算内置计算逻辑,但需在“过滤条件”自主编写自定义逻辑条件,用以筛选出符合逻辑的数据,后续系统会根据过滤结果再统计出质检结果;
    • 分区表达式:使用分区字段构建 SQL 条件表达式对数据进行筛选,如 create_time > '2023-05-01';同时支持流程作业参数,如 create_time > #{planTime};
    • 过滤条件:选择“自定义规则”时可自定义逻辑条件,例如age >0 and age < 120。
      注意
      • 支持使用sql语法,支持1=1,不支持1==1,但是1==1可以保存,运行时会运行失败。不支持&&、||、!;支持&、|、and、AND、or、OR、NOT、not。
    • 比较方式:小于等于、小于、大于等于、大于、等于;
    • 期望值:填写符合规则模板比较方式对应的记录条数,若不符合期望,则该规则结果在是否通过处显示“不通过”。计算逻辑/内置规则类型是【固定值】时,期望值是 [0, 2147483647] 自然数;计算逻辑/内置规则类型是【比值】时,期望值是 [0, 100] 范围的小数。
  • 正则验证说明
    • 当选择计算逻辑为 “符合格式条数,固定值”、“符合格式条数/总条数” 两种时,质检规则弹窗界面出现正则验证功能按钮,点击后,弹出正则验证器,包含内置的正则库,可直接选择使用或手动输入正则表达式。然后在正则验证框中输入要验证的文本进行验证,待验证通过后,用户可修改已有正则名称或输入正则名称对正则库进行更新,最后将所需正则移至质量规则计算逻辑配置页供数据质检时使用。
      数据质检
      数据质检

内置计算逻辑说明

规则名称
规则说明规则核心检测逻辑
非空条数,固定值字段值为非空的数据即为命中;
不支持字段类型:text、json、xml、bytea、geometry
SUM(CASE WHEN columnISNULLorNULLIF({column} IS NULL or NULLIF({column}::text,'') is null THEN 0 ELSE 1 END) AS hitCount
符合格式条数,固定值满足“校验格式”中所填写正则表达式格式要求的数据即为命中;
不支持字段类型:text、json、xml、bytea、geometry
SUM(CASE WHEN columnISNULLorNULLIF({column} IS NULL or NULLIF({column}::text,'') is null THEN 1 when ${column} ~ #{format} then 1 ELSE 0 END) AS hitCount
符合范围条数,固定值字段值在所配置“开始值(含)、结束值(含)”区间内的数据即为命中;
适用数值型字段类型,如int4、int8、float4、float8、decimal
SUM(CASE WHEN columnISNULLorNULLIF({column} IS NULL or NULLIF({column}::text,'') is null THEN 1 when ${column} >= #{start} and ${column} <= #{end} then 1 ELSE 0 END) AS hitCount
符合枚举值条数,固定值字段值在所配置“值选项”枚举集合内的数据即为命中;
不支持字段类型:text、json、xml、bytea、geometry
SUM(CASE WHEN columnISNULLorNULLIF({column} IS NULL or NULLIF({column}::text,'') is null THEN 1 when ${column} in #{values.v} then 1 ELSE 0 END) AS hitCount
包含关键字条数,固定值字段值包含所配置“关键字”的数据即为命中;
不支持字段类型:text、json、xml、bytea、geometry
SUM(CASE WHEN columnISNULLorNULLIF({column} IS NULL or NULLIF({column}::text,'') is null THEN 1 when ${column} like concat('%', #{keyword}, '%') then 1 ELSE 0 END) AS hitCount
唯一值条数,固定值字段值唯一的数据即为命中;
不支持字段类型:text、json、xml、bytea、geometry
count(distinct (${column})) as hitCount
符合身份证校验条数,固定值满足中国身份证号码、护照、驾照的基本格式的数据即为命中,格式包含6位数字前缀、符合yyyyMMdd格式的8位数字、三个数字和一个数字或字母X/x的4位后缀;
适用字符型字段类型,如char、varchar
((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|[7-9]1)\d{4}(19|20|21)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]
符合邮箱校验条数,固定值满足邮箱基本格式的数据即为命中,格式包含“@”“.顶级域名”即可;
适用字符型字段类型,如char、varchar
[A-Za-z0-9]+([-._][A-Za-z0-9]+)*@[A-Za-z0-9]+(-[A-Za-z0-9]+)*(.[A-Za-z]{2,6}|[A-Za-z]{2,4}.[A-Za-z]{2,3})
符合手机校验条数,固定值满足中国手机号基本格式的数据即为命中,格式包含13x、14x、15x、16x、17x、18x、19x,这几个号段;
适用数值型字段类型,如int4、int8
(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}
符合座机号校验条数,固定值满足中国座机号基本格式的数据即为命中,格式包含以0开头的2-3位区号,有无“-”连字符均可,7-8位的电话号码;
适用字符型字段类型,如char、varchar
(0\d{2,3})-?(\d{7,8})
符合日期格式校验条数,固定值满足以下日期格式的数据即为命中,格式包含:'yyyy-MM-dd'、'yyyy-MM-dd HH:mm:ss'、'yyyy/MM/dd'、'yyyy/MM/dd HH:mm:ss'、'yyyy.MM.dd'、'yyyy.MM.dd HH:mm:ss'、'yyyyMMdd'、'yyyyMMdd HH:mm:ss'
适用时间型字段类型,如date、timestamp、timestamptz
以'yyyy-MM-dd'格式为例:
sum(case WHEN column \d4\d2\d2{column} ~'^\d{4}-\d{2}-\d{2}' THEN 1 else 0 end) as hitCount
符合IP地址校验条数,固定值满足IPv4格式的数据即为命中,格式包含:三个“.”将整个字符串分为四段,每段由0到255的数字组成;
适用字符型字段类型,如char、varchar
((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d).){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)
符合邮编格式校验条数,固定值满足邮编基本格式的数据即为命中,格式为以数字开头且总长度为6位的字符串;
适用数值型字段类型,如int4、int8
[0-9]\d{5}
符合字段长度范围条数,固定值字段值在所配置“开始值(含)、结束值(含)”长度区间内的数据即为命中;
不支持字段类型:text、json、xml、bytea、geometry
sum(case when length({column}) >= #{start} and length({column}) <= #{end} then 1 else 0 end) as hitCount
符合不含空白字符校验条数,固定值字段值中不包含空白字符即为命中,空白字符包含普通空白字符(英文空格、制表符、换行符等)、全角空格(\u3000)、不间断空格(\u00A0)sum(case when ${column} ~'\s|\u3000' then 0 else 1 end) as hitCount
  • 质量评分配置
    • 新增质量特性:点击新增后,可选择当前内置质量特性或已配置自定义质量特性,并设置权重值;
    • 关联质检规则:可对每个质量特性关联当前节点已配置的内置规则,一个规则仅可关联一个质量特性;
    • 质量评分计算:质检完成后,当前质检表会基于质量特性的权重值,通过加权算法计算该表字段得分及表级合规得分

数据质检

  1. 标签加工作业配置完成后,需再完成调度配置,并上线后方可按配置周期性自动打标。

修改

进入数据质检 > 质检作业界面,选中目标数据质检作业,点击操作栏“修改”按钮即可修改。

注意
  • 质检作业未上线方可修改;
  • 若需变更“质检资产”,请先将下方质检规则全部删除后方可修改。

删除

进入数据质检 > 质检作业界面,选中目标数据质检作业,点击操作栏“删除”按钮,二次确认后即可删除。

注意
  • 质检作业未上线方可删除;
  • 删除作业后不会同步删除基于该作业生成的质量报告。

调度配置

调度配置

使用场景:用户通过周期性调度实现持续的数据质检。

使用角色:数据开发人员。

功能描述:平台支持时钟触发的方式,为数据质检作业提供统一调度。支持分钟、小时、日、周、月不同粒度的调度频率,实现周期性调度管理。

进入数据质检 > 质检作业界面,选中目标数据质检作业,点击操作栏“调度配置”按钮,在弹窗中填写页面信息后“保存”即可。
数据质检

时钟触发

  • 生效日期:在该日期区间调度配置正常运行,否则自动下线该流程;
  • 永久生效:勾选后作业永久生效,生效日期置灰无需填写,取消勾选后则生效日期必填;
  • 调度周期:可选分钟、小时、日、周、月,请选择合适的周期进行配置;
  • 具体时间:在生效日期范围内,作业调度具体开始时间,精确到小时、分钟,部分周期支持配置时间间隔;
  • 超时时间:当调度任务运行起来后,在该超时时间范围内必须运行完成,否则则认定为超时并强制结束该任务;
  • 未来5次执行时间:时钟触发配置完成后,自动生成未来5次的调度时间,用以预览配置是否符合期望。
超时时间说明
  • 调度周期为日、周、月时,可选择多个具体时间,最多支持设置10个不重复的具体时间,即可存在10个corn表达式,注意“1日、2日、3日10:00”为1个corn表达式。

数据质检

运行策略

  • 作业运行人:必填,默认当前创建人,新建时不可修改,后续只可由空间管理员修改;作业运行时会以作业运行人的数据库账号进行校验并执行作业任务,若存在作业运行人无权限数据表,则作业运行失败
  • 作业优先级:必填,默认为高,当多个任务在等待队列排队时,队列槽位释放后,级别高的任务会优先进入运行队列执行;即首先按优先级调度任务,同一优先级按时间顺序调度任务;调整优先级不影响当前排队任务,下一调度生效
  • 运行队列:必填,提供默认队列作为默认值,可选择已配置队列,无权限队列则过滤不显示;当多个作业并发运行时,超过队列槽位数的作业任务会排队等待;立即运行,未配置队列时使用默认队列执行任务
  • 队列最大等待时长:非必填,仅可填写整数,超过等待时长的任务自动取消排队,不再执行,可清空不填则为永久等待直至进入运行队列;未设置则一直排队,不会自动取消(说明:立即运行默认最大等待时长60分钟;补数据未配置时默认最大等待时长为永久)
  • 调度冲突策略:自身作业多个调度任务实例堆积时的处理策略;默认为等待,即后续任务实例排队等待前面任务实例运行完成方才运行;忽略,则后续任务实例自动忽略取消运行,直至不再堆积后新的任务实例才会按计划运行
  • 失败重试次数:作业级失败重试,默认为0,即不重试,最大可配置重试5次。

数据质检

立即运行

完成质检规则配置好后,点击 “立即运行” 即可对数据质检进行真实运行,运行结束后界面最下方会反馈执行信息与执行结果,并在运维监控 > 调度管理同步生成作业任务实例以查看运行详情。

数据质检

注意
  • 可先设置少量抽样快速运行以验证配置正确性;
  • 立即运行的结果,即便作业不上线的情况下也会参与质量统计,在质量概览和质量详情中可以查看。

上下线

平台可通过在标签加工界面可手动调整作业状态,需要完成作业新建以及调度周期配置后作业方可上线,上线后作业按调度周期运行。作业下线后用户可重新对当前作业重新进行修改、调度周期配置等操作,下线后作业需重新上线方可运行。

注意
  • 当存在运行中的任务,点击“下线”会提示用户是否终止正在运行中的任务,可按需选择;
  • 数据质检作业可在运维监控 > 调度管理查看调度详情。

数据质检

相关术语

质量特性

最佳实践

质检评分

常见问题

数据质检-常见问题