You need to enable JavaScript to run this app.
文档中心
大数据研发治理套件(私有化)

大数据研发治理套件(私有化)

复制全文
管理监控对象
配置Hive模板规则
复制全文
配置Hive模板规则

数据监控及异常报警是数据质量的主要组成部分。离线数据监控依据监控规则监控对象,支持 Hive模板规则、Hive自定义规则、双数据源校验规则等规则配置类型。其中,模板意在定义监控校验规则,方便后期复用。下面将为您介绍如何配置监控及现有的模板规则。

约束限制

角色类型为管理员、开发或复查人的项目成员才可创建并管理规则,而访客和非项目成员仅具备查看权限。管理项目成员的操作请参见成员管理

前提条件

已绑定要监控数据的引擎服务,相关操作可参见新建项目

创建规则

  1. 登录DataLeap控制台。
  2. 选择数据质量 > 数据监控,直接进入离线数据监控对象页面。
  3. 在页面右上角的项目下拉列表中选择要管理的项目。
  4. 单击模板规则页签,进入模板规则管理页面。
  5. 创建监控对象。
    1. 单击 +监控对象按钮,在弹出的窗口中,设置监控对象信息。
    2. 单击确定按钮,对象添加成功并显示在监控对象列表中。
      Image
  6. 创建监控规则。
    1. 单击某个监控对象的新建规则按钮,进入该对象的新建监控规则页面。
    2. 设置规则信息后,单击完成或者完成并试跑按钮,完成规则创建。
      • 单击完成按钮,完成规则创建。
      • 单击完成并试跑按钮,在弹出的窗口中选择试跑时间后,单击确定按钮,完成规则创建并直接试跑。

监控规则配置相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

参数

说明

新建监控对象

*集群

要创建规则的数据库集群,支持 Apache Hadoop、MiniBase Hadoop、LAS 三种引擎类型,下拉可选相应引擎下已创建的集群。
支持快捷模式和安全模式两类集群,相关配置说明请参见集群管理

  • 快捷模式:选择监控对象时不会进行鉴权,可选择监控集群下所有数据表。
  • 安全模式:选择监控对象时会进行数据鉴权,若无该表的读取权限,则无法创建相应的监控规则。

*库表名

创建监控对象的库、表名称,支持按表录入按库录入两种设置方式。

  • 按表录入:输入库名.表名,单击添加按钮,添加一张表。可分次添加多个库表。
  • 按库录入:在库名下拉列表中选择数据库后,在表名下拉列表中选择需要监控的数据表,单击添加按钮,添加一张表。选择库表时,支持模糊搜索,并可分次添加多个库表。

说明

仅可添加有权限的分区表作为监控对象。

新建监控规则

*选择分区

根据表的现有分区,自动识别,可编辑。
若没有可用分区,可通过添加分区按钮添加。支持多个分区表达式选项,下拉可选。分区表达式相关说明可参见时间变量说明

规则配置

规则

规则个数,可按需创建多个规则,每个规则下需配置一个规则模板。

*规则模板

质量评估六大维度,包含完整性、唯一性、有效性、准确性、一致性、及时性,下拉可选。其中,各维度分别默认支持表行数、重复值、空值、异常值、表字段等模板类型,对应关系如下:

  • 准确性
    • 表行数:计算该分区下的表行数,通常用于校验任务完成后产出的分区数据为空的异常情况,或者根据自己需求检验表行数的一些波动情况。
      表行数的计算定义:count(*)
    • 表字段:选择某个字段,再选择一种字段的计算方式,如sum(money),再监控这个指标。
  • 完整性
    • 内置自定义模板:支持丢失率、空值率两个选项。
    • 空值:特殊的异常值监控,以NULL、空字符串或自定义的空值类型(比如unknown)检测某字段或者1+个字段的空值占比。
  • 有效性
    • 异常值:根据提供的正常值或异常值列表/表达式,计算异常值的个数或占比。
  • 唯一性
    • 重复值:选择1或者1+个字段,计算重复值占比,通常用于联合主键重复值校验,计算方式为count()-count(distinct key)/count()。

*规则名称

监控规则名称,自动填充,可编辑。

*监控字段

要监控的数据表字段名称,下拉可选。

说明

  • 规则模板选择重复值空值异常值表字段时,需配置该参数。
  • 规则模板选择重复值空值时,支持多选,也可批量输入。批量输入时,需输入匹配字段,多个字段用“,”隔开,例如1,2,3。

*空值类型

支持 NULL、空字符串和自定义三种选项。

说明

规则模板选择空值时,需配置该参数。

*匹配逻辑

支持正常值列表和异常值列表两个选项。

说明

规则模板选择异常值时,需配置该参数。

*匹配方式

支持枚举值和正则表达式两个选项。

说明

规则模板选择异常值时,需配置该参数。

*匹配内容

  • 匹配方式选择枚举值时,需输入枚举值进行匹配,支持设置多个。可直接输入设置,也可通过批量输入按钮导入。
    • 直接输入:在输入框中输入枚举值。每输入一个枚举值,均需单击回车键完成设置。
    • 批量导入:单击批量输入按钮,在弹出的窗口中,输入枚举值。若输入多个内容需用“,”隔开,例如1,2,3。

    说明

    • 枚举值填入hive_none代表为空值,填入hive_empty代表为空字符串。
    • 直接输入时,多个内容不能用“,”分隔,否则会被解析为多个值在同一个字符串内匹配。
  • 匹配方式选择正则表达式时,需输入正则表达式进行匹配。例如,匹配手机号示例:^1[34578]\d{9}$

说明

规则模板选择异常值时,需配置该参数。

*计算方式

监控某字段所采取的计算方式,支持sum、count、avg 和 count distinct 四个选项。

说明

规则模板选择表字段时,需配置该参数。

相关参数

涉及以下配置项,设置的参数在 SQL 中将使用${}的方式引用:

  • *table_name:表全名,创建监控时自动赋值。
  • *partition:分区条件,创建监控时自动赋值。
  • *target_column:计算丢失率的目标列/目标map。
  • group_columns:维度列。
  • where_expr:过滤条件。

注意

  • 规则模板选择自定义类型时,需配置该参数相关项。
  • 执行引擎选择 PRESTO 时,target_column 需配置为 string 类型的字段。

*监控SQL

所选规则对应的监控SQL语句,系统自动填充。确认无误后,选择解析SQL,系统将根据设置参数自动替换模板内容(替换后 SQL 详情可通过查看 SQL按钮获取)并解析对应指标,进一步完成报警条件的设置。

说明

  • 规则模板选择自定义类型时,需配置该参数项。
  • 若原有 SQL 中存在需要修改的逻辑问题,可直接在代码块中进行修改。
  • 若修改 SQL 中引入了新的参数,将不会再被解析至相关参数中,请注意避免。

*报警条件

是指规则发出报警时,指标需要满足的条件。当监控指标被计算出来后,如果满足报警条件,就会发出报警。
支持数值、波动率、重复值占比、空值占比等的报警,多个报警条件之间的关系默认为,可改为

  • 数值:即定义的计算指标本身,如sum(money)、count(*)等,该指标会直接跟设定的阈值做对比,判断是否报警。例如:
    • 监控规则:表行数数值超过2000发出报警。
    • 报警判断:假设监控检测出的表行数数值为2500,与设定的阈值(2000)做对比,发现超过阈值,于是发出报警。
  • 波动率(单位为%):根据当次监控规则计算出的指标结果,与某段时间内或某个时间点的该指标做比值,计算出波动率后,再与设定的阈值进行比较判断。目前支持的波动率类型与计算方式有:
    • 相比前一周期波动率:(当次检测值 – 前一周期检测值)/前一周期检测值
    • 相比1天前波动率:(当次检测值 - 1天前检测值)/1天前检测值
    • 相比7天前波动率:(当次检测值 - 7天前检测值)/7天前检测值
    • 相比7天内均值波动率:(当次检测值 - 7天内检测值的均值)/7天内检测值的均值
    • 相比30天内均值波动率:(当次检测值 - 30天内检测值的均值)/30天内检测值的均值
      下拉选择波动率类型后,选择判断方式并设置波动率值。每种波动率类型支持 >、<、∈(属于)、∉(不属于)等多种判断方式;波动率值有正负值区别,正值表示增长波动,负数表示减少波动。具体设置举例如下:
    • 监控规则:表行数的波动率设置为 7天前波动率 ∉ -20% - 20%,即表示表行数相比7天前波动率不在 -20% 到 20% 的范围内则发出报警。
    • 监控流程:算出当天的表行数数值后(假设为2500)后,会与7天前的表行数(假设为2000)做计算, 波动率算出来为上升25%,于是判定结果为报警。
  • 动态阈值:根据历史分区的数据来预测下一个分区的行数范围,如果新分区的行数不在这个区间范围内会发出报警。动态阈值适用场景说明请参见动态阈值使用说明

说明

  • 动态阈值与其他报警条件不能同时配置,即若报警条件选择动态阈值,则无法再新增其他类型的报警条件。
  • 根据规则类型的不同,对应的报警条件选项也不同,以页面实际选项为准。

执行方式

*执行方式

支持关联dorado任务、定时调度、暂不设置三种选择。

  • 关联任务:按照关联任务的调度时间执行。
  • 定时调度:自行设置监控规则的执行时间。
  • 暂不设置:不自动调度执行,可按需手动调度。

*任务名称

数据开发关联调度任务的名称,可通过任务名称关键词或ID进行搜索选择。

说明

  • 执行方式选择关联dorado任务时,需设置该参数。
  • 目前仅支持关联当前项目下调度频率为小时/天/周/月级的离线任务。
  • 暂不支持关联 Sensor 类型的任务。
  • 该任务每次运行完成(包括重跑、回溯、上线调度),会启动监控规则的执行。

*规则强弱

提供强、弱两个配置选项。

  • 当选择时,需设置熔断方式。关联任务执行完成之后会进入强规则运行阶段,由熔断方式决定下游任务运行情况。
  • 当选择时,关联任务执行完成之后会进入弱规则运行阶段,如果发现关联任务质量异常,则该规则发送报警通知,但不会阻塞下游任务运行。

说明

执行方式选择关联dorado任务时,需设置该参数。

*熔断方式

如果是强规则,可选择以下两种熔断方式:

  • 在规则运行完成之前,Dorado实例将一直处于运行中状态:是指在质量规则运行完成之前,关联任务实例一直处于运行中,期间若触发强规则告警,则关联任务实例状态置为失败,阻塞下游任务运行;若未触发告警,则关联任务实例置为成功,并触发下游任务运行。
  • 若规则运行超过x分钟仍未结束,直接置Dorado实例为成功:是指质量规则运行超过设定时间,关联任务实例状态会直接置为成功,但规则仍继续运行,可以触发告警通知。此时,下游任务仍被触发运行,但可能存在数据质量污染风险,需要及时关注监控结果。超时时间可自行设定,取值范围为0~200。

*执行频率

任务监控规则执行频率,提供分钟级、小时级、天级三个选项。

说明

执行方式选择定时调度时,需设置该参数。

*执行时间

根据执行频率,设置具体的执行时间。

说明

执行方式选择定时调度时,需设置该参数。

*执行引擎

使用的计算引擎,支持 SPARKPRESTO 两个选项。

说明

仅选择的 Apache Hadoop 集群配置了 Presto 计算引擎,该参数才会显示 PRESTO 选项。相关配置操作请参见集群管理

*运行队列

规则使用的运行队列,支持使用任务队列自行指定队列两个选项。

  • 使用任务队列:使用关联任务的引擎队列。当选择关联的任务名称后,才可选择该选项。
  • 自行指定队列:自行选择要使用的引擎队列,下拉可选当前项目下所选集群已绑定的队列。项目绑定队列的操作请参见新建项目编辑项目配置

说明

执行引擎选择 SPARK 时,需设置该参数。

报警设置

*报警方式

支持邮箱、Webhook、飞书的告警方式。

*hookUrl

Webhook 请求地址,以 http 或 https 开头。 从下拉列表中选择 http 或 https,填写 Webhook URL 地址。欲了解详细的配置说明,请参见Webhook使用说明

说明

  • 报警方式选择 Webhook 时,需设置该参数。
  • 选择webhook后,通知消息将主动推送至对应hookUrl中。

*报警接收

接收报警的用户、飞书群。

  • 报警方式选择邮箱Webhook时,需选择接收报警的用户。
    • 用户:输入用户账号关键词后,在下拉列表中选择,支持设置多个。
  • 报警方式选择飞书时,需设置接收报警消息的用户或您所加入的飞书群。
    • 用户:报警消息将发送至用户名对应的飞书中。
      输入用户账号关键词后,在下拉列表中选择,支持设置多个。
    • 飞书群:报警消息将发送至飞书群ID对应的飞书群中。
      可通过下拉列表中的获取群ID按钮,查看要输入的飞书群ID。

说明

满足以下两个条件,才可接收飞书消息。

  • 已配置相应的飞书消息通知机器人信息,相关配置操作请参见报警接收渠道配置
  • 目标用户为通过飞书账号登录后创建的用户。

高级设置

重试条件

运行失败

运行参数

按需配置 SQL 语句前的运行参数,如“set 参数名1=取值;”。

过滤条件

where之后的条件语句,语法逻辑跟HSQL一致,无需输入Where,如 type='xxx'。

管理规则

对已创建监控规则的监控对象,可进行相应的管理操作,步骤如下:

  1. 单击模板规则页签,进入模板规则管理页面。
    Image
  2. 可执行以下操作:
    • 设置搜索信息,搜索符合条件的监控对象。
    • 将鼠标悬停在列表中某个监控对象所在行最新报警条数上,会显示该监控的最新报警信息,单击某个报警信息的查看按钮,在结果详情页面,可以查看该规则报警的详细信息并执行以下操作:
      • 单击查看规则按钮,可以查看该规则的详情信息。
      • 单击运行日志按钮,可以查看该规则的监控运行日志。
      • 单击 ... > 执行记录按钮,可以查看检测执行记录。
      • 单击 ... > 查看SQL按钮,可以查看该规则检测当日的SQL执行语句。
      • 单击 ... > 重跑按钮,二次确认后,可以重跑该次监控规则。
    • 单击列表中对象所在行的 ... > 删除对象按钮,删除对象。
    • 单击某条规则分区操作列的监控规则按钮,在新建规则页面中,增加一条监控规则。
    • 单击某条规则分区操作列的修改表达式按钮,在弹出的窗口中,修改分区表达式信息。
    • 单击某条规则名称操作列的查看SQL 按钮,可以查看规则的SQL语句。
    • 单击某条规则名称操作列的编辑按钮,在编辑规则页面中,可以修改其规则信息。
    • 单击某条规则名称操作列的 ... > 查看按钮,在规则详情页面,可以查看规则配置和试跑记录,还可以复制规则、试跑、重跑已有记录等。
    • 单击某条规则名称操作列的 ... > 试跑按钮,在弹出的窗口中,设置试跑时间,可以开启新的试跑。
    • 单击某条规则名称操作列的 ... > 开启/关闭按钮,在弹出的确认对话框中,单击确定按钮,可以开启/关闭该规则。
    • 单击某条规则名称操作列的 ... > 删除按钮,在弹出的确认对话框中,单击确定按钮,可以删除该规则。
    • 单击某条规则名称操作列的 ... > 分享链接按钮,可以复制相应对象的链接。
    • 单击某条规则名称操作列的 ... > 复制按钮,在复制规则页面,可以编辑已复制的规则信息。
    • 单击某条规则名称操作列的 ... > 查看7天结果按钮,跳转到监控结果页面,查看截止到操作当天的7天监控结果。
    • 单击某条规则名称操作列的 ... > 转让owner 按钮,在弹出的窗口中,可以选择将规则转让给新的owner。
    • 勾选一条或多条规则后,单击对应的按钮,执行批量操作。
      • 批量开启/关闭
      • 批量试跑
      • 批量删除
      • 批量修改报警
      • 批量转让owner
      • 批量更换队列

说明

  • 仅当前项目管理员或者相应的表、分区、规则等Owner才可执行对应的增、删、改等编辑操作。
  • 数据标准页面配置数据质量规则后,新增映射时会自动在数据质量产品中创建类型为DataStandard(准确性) 的监控规则并计算质量分,您也可在此处对其进行管理。生成该规则的相关说明请参见新建数据标准

后续操作

规则运行后,您可到运行结果页面查看该规则的运行结果,查看报警情况,查找并分析问题。管理规则运行结果的相关操作说明请参见管理Hive模板规则监控结果

附录:规则说明

时间变量说明

数据质量目前支持的时间变量相关说明如下表所示。

变量

含义

格式

示例

${DATE}

获取业务时间日期

yyyy-MM-dd

天任务:2019/01/02 8点执行,${DATE} =2019-01-01小时任务:2019/01/02 8点执行,${DATE} =2019-01-02

${date}

获取业务时间日期

yyyyMMdd

天任务:2019/01/02 8点执行,${date} =20190101小时任务:2019/01/02 8点执行,${date} =20190102

${day}

获取业务时间日期

dd

天任务:2019/01/02 8点执行,${day} =01小时任务:2019/01/02 8点执行,${day} =02

${HOUR}

获取业务时间整点

h(整数)

天任务:2019/01/02 8点执行,${HOUR} =0小时任务:2019/01/02 8点执行,${HOUR} =7

${hour}

获取业务时间整点

hh

天任务:2019/01/02 8点执行,${hour} =00小时任务:2019/01/02 8点执行,${hour} =07

${MINUTE}

获取业务时间整分钟

m(整数)

天任务:2019/01/02 08:10点执行,${MINUTE} =0小时任务:2019/01/02 08:10点执行,${MINUTE} =05分钟任务:2019/01/02 08:10点执行,${MINUTE} =510分钟任务:2019/01/02 08:10点执行,${MINUTE} =10

${minute}

获取业务时间整分钟

mm

天任务:2019/01/02 08:10点执行,${minute} =00小时任务:2019/01/02 08:10点执行,${minute} =005分钟任务:2019/01/02 08:10点执行,${minute} =0510分钟任务:2019/01/02 08:10点执行,${minute} =10

${month}

获取业务时间月份

MM

天任务:2019/01/02 8点执行,${month} =01小时任务:2019/01/02 8点执行,${month} =01

${year}

获取业务时间年份

yyyy

天任务:2019/01/02 8点执行,${year} =2019小时任务:2019/01/02 8点执行,${year} =2019

${timestamp}

获取业务时间时间戳

XXXXXX...(整数)

天任务:2019/01/02 8点执行,${timestamp} =1546272000小时任务:2019/01/02 8点执行,${timestamp} =1546383600

${last_DATE}

获取业务时间所处月份的最后一天

yyyy-MM-dd

天任务:2019/01/02 8点执行,${last_DATE} =2019-01-31小时任务:2019/01/02 8点执行,${last_DATE} =2019-01-31

${last_date}

获取业务时间所处月份的最后一天

yyyyMMdd

天任务:2019/01/02 8点执行,${last_date-1} =20181231小时任务:2019/01/02 8点执行,${last_date-2} =20181130

${last_day}

获取业务时间所处月份的最后一天

dd

天任务:2019/01/02 8点执行,${last_day-1} =31小时任务:2019/01/02 8点执行,${last_day-2} =30

动态阈值使用说明

创建模板规则过程中,当规则类型选择表行数时,可以配置动态阈值报警。
动态阈值可以根据历史分区的数据来预测下一个分区的行数范围,如果新分区的行数不在这个区间范围内会发出报警。
分析发现,表行数的数据分布主要有以下几种分布形态:

分布

单调不减(A)

整体上升,偶尔下降(B)

固定不变(C)

变动频率小(D)

其他

图示例

Image

Image

Image

Image

Image

动态阈值在上述A、B、C、D四种分布上效果更佳。因此,开启动态阈值报警前,建议先查看一下历史表行数的数据走势,以判断该报警条件是否适用。

Webhook使用说明

创建监控规则过程中,当您选择 Webhook 报警方式时,需注册 Webhook URL,后续报警会发送到注册的 URL。您可以根据 URL 的请求,制定后续的问题处理流程。

  • WebHook配置
    1. 报警方式下拉列表中,选择 Webhook
    2. 配置 WebHook:从下拉列表中选择 httphttps 后,填写 hookUrl。
      URL 地址示例如下:
      volc_quality_test.volcwebhook.xxx/xx/webhook
  • Webhook请求
    配置 URL 告警时会给 URL 地址发送请求,具体样例如下:
    • Request body示例

      {
      "source": "quality", // 源系统的中文名称
      "region": "cn", // 源系统的部署环境
      "type": 1, // 报警/消息:枚举值:1、报警 2、消息
      "rule_name": "xxx_rule", // 源系统中产生事件的规则名称
      "callback_url": "url_to_rule", // 源系统中产生事件的规则回调地址URL
      "target_type": "table", // 区分描述对象的大类,比如:任务、数据库、表
      "target": "test_tb", // 描述具体的事件对象,一般信息包含:对象名称及具体名称值
      "content": "alarm content", // 描述发生事件的具体内容,即为:报警内容 或 通知内容
      "event_time": "2020-03-01 00:00:00", // 报警时间,消息通知时间
      "owners": "test,test2" // 此次事件的直接负责人
      "challenge": null
      }
      
    • Response body示例

      {
      "status": 0, //状态码,0
      "data": null
      }
      
最近更新时间:2025.11.05 14:53:23
这个页面对您有帮助吗?
有用
有用
无用
无用