本功能支持通过自定义 SQL 创建 Hive 自定义规则,下面将为您介绍如何配置。
使用场景
当遇到如下情况,平台提供的监控模板无法满足监控需求的时候,您可以通过自定义 SQL 创建自定义规则。
- 需要通过一些复杂的判断逻辑或计算方式,将数据的字段转换为某个指标进行监控。
- 某个衡量一致性的指标需要通过多表之间的 Join 后才可以得出。
约束限制
角色类型为管理员、开发或复查人的项目成员才可创建并管理规则,而访客和非项目成员仅具备查看权限。管理项目成员的操作请参见成员管理。
前提条件
已绑定要监控数据的引擎服务,相关操作可参见新建项目。
创建规则
- 登录DataLeap控制台。
- 选择数据质量 > 数据监控,直接进入离线数据监控对象页面。
- 在页面右上角的项目下拉列表中选择要管理的项目。
- 单击自定义规则页签,进入自定义规则管理页面。

- 单击新建规则按钮,进入规则设置页面。
- 依次完成以下设置:
- 设置规则参数,单击下一步按钮。
- 设置监控逻辑,单击下一步按钮。
- 输入符合Hive语法规范的SQL语句。
- 单击解析SQL 按钮,自动填充字段监控逻辑。
- 可根据需要修改或增加SQL字段监控设置。
- 可根据需要设置高级参数。
- 设置报警设置信息。
- 单击创建规则按钮,完成规则创建。
说明
- SQL语句支持join和group by,group by后通常需设置维度字段。
- 为了提升报警结果的可读性,建议采用as缩写复杂的指标名称,监控将执行该SQL并判断报警。
- SQL产出的数据行数最大为200,超过部分会被截断。
监控规则配置相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。
参数 | 说明 |
|---|
规则信息 |
*规则名称 | 监控规则的名称,自动填充,可编辑。 |
描述信息 | 监控规则的描述信息,以便后续管理。 |
运行设置 |
*集群 | 要创建规则的数据库集群,支持Apache Hadoop、MiniBase Hadoop、LAS三种引擎类型,下拉可选相应引擎下已创建的集群。
支持快捷模式和安全模式两类集群,相关配置说明请参见集群管理。 - 快捷模式:选择监控对象时不会进行鉴权,可选择监控集群下所有数据表。
- 安全模式:选择监控对象时会进行数据鉴权,若无该表的读取权限,则无法创建相应的监控规则。
|
*关联任务 | 数据开发关联调度任务的名称。
通过任务ID或者任务名称关键词搜索后,下拉可选。 说明 - 仅支持关联当前项目下调度频率为小时/天/周/月级的离线任务。
- 允许关联多个任务(任务频率需保持一致)。当所有任务执行完成后(包括重跑、回溯、上线调度),才会触发监控规则。
- 暂不支持关联 Sensor 类型的任务。
|
*规则强弱 | 提供强、弱两个配置选项。 - 当选择强时,需设置熔断方式。关联任务执行完成之后会进入强规则运行阶段,由熔断方式决定下游任务运行情况。
- 当选择弱时,关联任务执行完成之后会进入弱规则运行阶段,如果发现关联任务质量异常,则该规则发送报警通知,但不会阻塞下游任务运行。
|
*熔断方式 | 如果是强规则,可选择以下两种熔断方式: - 在规则运行完成之前,Dorado实例将一直处于运行中状态:是指在质量规则运行完成之前,关联任务实例一直处于运行中,期间若触发强规则告警,则关联任务实例状态置为失败,阻塞下游任务运行;若未触发告警,则关联任务实例置为成功,并触发下游任务运行。
- 若规则运行超过x分钟仍未结束,直接置Dorado实例为成功:是指质量规则运行超过设定时间,关联任务实例状态会直接置为成功,但规则仍继续运行,可以触发告警通知。此时,下游任务仍被触发运行,但可能存在数据质量污染风险,需要及时关注监控结果。超时时间可自行设定,取值范围为0~200。
|
*执行引擎 | 使用的计算引擎,支持 SPARK 和 PRESTO 两个选项。 说明 仅选择的 Apache Hadoop 集群配置了 Presto 计算引擎,该参数才会显示 PRESTO 选项。相关配置操作请参见集群管理。 |
*运行队列 | 规则使用的运行队列,支持使用任务队列、自行指定队列两个选项。 - 使用任务队列:使用关联任务的引擎队列。当选择关联任务后,才可选择该选项。
- 自行指定队列:自行选择要使用的引擎队列,下拉可选当前项目下所选集群已绑定的队列。项目绑定队列的操作请参见新建项目或编辑项目配置。
说明 当执行引擎选择 SPARK 时,需设置该参数。 |
自定义SQL及监控逻辑 |
*自定义SQL | 符合Hive语法规范的SQL语句,支持join和group by(group by后通常需设置维度字段)。 |
*字段名称 | SQL字段名称。解析SQL语句后,自动填充,可编辑。 |
*字段类型 | 支持维度和指标两个选项。解析SQL语句后,自动填充,可编辑。 - 维度:规则报警后,会通报维度信息,便于用户拆解报警内容。如:维度app=toutiao下,指标DAU发出报警。用户可设置多个维度。
- 指标:监控的具体指标,需要设置报警条件。多个指标之间是独立的,任何一个满足报警条件,都会触发规则报警。
目前自定义SQL主要提供以下监控场景: - 当所有字段的字段类型全部设置为指标时,可进行多指标监控(单行多列)。例如,监控某个产品线的DAU、MAU、人均在线时长等指标。
- 当至少有一个字段的字段类型设置为维度时,可进行多指标多维度监控(多行多列)。例如,监控多个产品线的DAU、MAU、人均在线时长等指标,一旦发出报警,会知道是哪个产品线下的哪个指标触发了报警。
- 监控配置示例如下:
- 自定义SQL语句:
SELECT APP,DAU,MAU from databases.table group by APP; - 将 APP 设置成维度,DAU、MAU 设置成指标,并为指标设定监控阈值。
- 当实际结果不符合监控预期时,便发出报警,报警信息示例如下:
- APP=toutiao, 指标DAU为XXX,触发报警。
- APP=douyin, 指标MAU为XXX,触发报警。
说明 当仅设置为指标监控时,则只可进行单行监控,即只监控根据输入的自定义SQL语句检测到的第一行数据。若要进行多行监控,需至少设置一个维度字段。 |
*报警条件 | 解析SQL语句后,自动填充,可编辑。
支持数值类型、波动率等的报警,具体说明可参见配置Hive模板规则的参数说明。 说明 - 一个指标字段可设置多个报警条件,多个报警条件之间的关系默认为且,可改为或。
- 多个字段之间的报警关系为或。
|
高级参数 |
规则重试条件 | 运行失败 |
运行参数 | 按需配置 SQL 语句前的运行参数,如“set 参数名1=取值;”。 |
过滤条件 | where之后的条件语句,语法逻辑跟HSQL一致,无需输入Where,如 type='xxx'。 |
报警设置 |
*报警方式 | 支持邮箱、Webhook、飞书的告警方式。 |
*hookUrl | Webhook 请求地址,以 http 或 https 开头。 从下拉列表中选择 http 或 https,填写 Webhook URL 地址。欲了解详细的配置说明,请参见Webhook使用说明。
当报警方式选择 Webhook 时,需设置该参数。 说明 选择webhook后,通知消息将主动推送至对应hookUrl中。 |
*报警接收 | 接收报警的用户、飞书群。 - 当报警方式选择邮箱或Webhook时,需选择接收报警的用户。
- 用户:输入用户账号关键词后,在下拉列表中选择,支持设置多个。
- 当报警方式选择飞书时,需设置接收报警消息的用户或您所加入的飞书群。
- 用户:报警消息将发送至用户名对应的飞书中。
输入用户账号关键词后,在下拉列表中选择,支持设置多个。 - 飞书群:报警消息将发送至飞书群ID对应的飞书群中。
可通过下拉列表中的获取群ID按钮,查看要输入的飞书群ID。
说明 满足以下两个条件,才可接收飞书消息。 - 已配置相应的飞书消息通知机器人信息,相关配置操作请参见报警接收渠道配置。
- 目标用户为通过飞书账号登录后创建的用户。
|
管理规则
对已创建监控规则的监控对象,可进行相应的管理操作,步骤如下:
- 单击自定义规则页签,进入自定义规则管理页面。

- 可执行以下操作:
- 设置搜索信息,搜索符合条件的监控对象。
- 单击某条规则名称操作列的试跑按钮,在弹出的窗口中,设置试跑时间,可以开启新的试跑。
- 单击某条规则名称操作列的开启/关闭按钮,在弹出的确认对话框中,单击确定按钮,可以开启/关闭该规则。
- 单击某条规则名称操作列的编辑按钮,在编辑规则页面中,可以修改其规则信息。
- 单击某条规则名称操作列的 ... > 删除按钮,在弹出的确认对话框中,单击确定按钮,可以删除该规则。
- 单击某条规则名称操作列的 ... > 分享链接按钮,可以复制相应对象的链接。
- 单击某条规则名称操作列的 ... > 查看7天结果按钮,跳转到监控结果页面,查看截止到操作当天的7天监控结果。
- 单击某条规则名称操作列的 ... > 转让owner 按钮,在弹出的窗口中,可以选择将规则转让给新的owner。
- 勾选一条或多条规则后,单击对应的按钮,执行批量操作。
- 批量开启/关闭
- 批量试跑
- 批量删除
- 批量修改报警对象
- 批量转让owner
后续操作
规则运行后,您可到运行结果页面查看该规则的运行结果,查看报警情况,查找并分析问题。管理规则运行结果的相关操作说明请参见管理Hive自定义规则监控结果。