You need to enable JavaScript to run this app.
导航
配置Hive自定义规则
最近更新时间:2024.11.21 15:16:58首次发布时间:2022.09.28 17:01:58

当遇到如下情况,平台提供的监控模板无法满足监控需求的时候,您可以通过自定义 SQL 创建自定义规则。

  • 需要通过一些复杂的判断逻辑或计算方式,将数据的字段转换为某个指标进行监控。
  • 某个衡量一致性的指标需要通过多表之间的 Join 后才可以得出。

1 前提条件

  • 已在概览页面购买大数据分析湖仓一体DataOps 敏捷研发分布式数据自治解决方案。
  • 已购买 EMR、LAS 或 EMR_SERVERLESS_SPARK 引擎服务,才可使用相应引擎功能。
  • EMR 引擎上传 Spark Jar 包后才能正常使用。若没有上传,当选择相应 EMR 引擎时,系统会弹窗提示您上传,详细操作说明请参见配置Hive模板规则

    说明

    • 具备 EMR 引擎的根目录读写权限的账号才能执行上传操作,主账号默认具备该权限。
    • 数据监控数据探查数据对比页面选择 EMR 引擎实例后,系统都会进行 Spark Jar 的扫描,可通过任一入口进行上传,上传成功一次即可。

2 创建规则

  1. 登录 DataLeap 控制台。
  2. 选择数据质量 > 数据监控 > 离线数据监控 > 监控对象,进入监控对象页面。
  3. 在页面右上角的项目下拉列表中,选择要管理的项目。
  4. 单击自定义规则页签,进入自定义规则管理页面。
    Image
  5. 单击 +新建规则按钮,进入新建自定义规则页面。
  6. 依次完成以下设置:
    1. 设置规则参数,单击下一步按钮。
    2. 设置监控逻辑,单击下一步按钮。
      1. 输入符合 Hive 语法规范的 SQL 语句。
      2. 单击解析SQL 按钮,自动填充字段监控逻辑。
      3. 可根据需要修改或增加 SQL 字段监控设置。
      4. 可根据需要,设置高级参数。
    3. 设置报警设置信息。
  7. 单击创建规则按钮,完成规则创建。

说明

  • SQL 语句支持 join 和 group by,group by 后需设置维度字段。
  • 为了提升报警结果的可读性,建议采用 as 缩写复杂的指标名称,监控将执行该 SQL 并判断报警。
  • SQL 产出的数据行数最大为 200,超过部分会被截断,需合理控制产出数据量的大小。

创建自定义规则相关参数说明如下表所示。其中名称前带 * 的参数为必填参数,名称前未带 * 的参数为可选参数。

参数

说明

规则信息

*规则名称

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

描述信息

规则的描述信息。

运行设置

*引擎

要创建规则的数据库存储引擎,支持 EMR、LAS、EMR_SERVERLESS_SPARK 三个选项,下拉可选。

  • LAS:直接选择,实例默认为 default。
  • EMR:需从下拉列表中选择一个已创建的实例。
  • EMR_SERVERLESS_SPARK:需从下拉列表中选择一个实例,默认为 default。

说明

EMR支持快捷模式和安全模式两类集群,集群访问模式的相关配置说明请参见绑定 EMR 集群

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

*执行方式

监控规则的执行方式,支持关联任务、定时调度和暂不设置三种方式。

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

*任务名称

要关联任务的名称。通过任务名称关键词或者任务ID搜索后,下拉可选。
执行方式选择关联任务时,需设置该参数。

说明

仅支持关联当前项目下调度频率为小时/天/周/月级的离线任务。

*规则强弱

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

  • 当选择时,需设置熔断方式。任务执行完成之后,由熔断方式决定下游任务运行情况。

    说明

    任务执行完成后将进入强规则运行阶段,会增加任务运行时长,请根据自身需求合理配置。

  • 如果是弱规则,任务会继续运行,如果失败仅发生报警通知,不会阻塞下游任务运行。

*熔断方式

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

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

*执行频率

任务监控规则执行频率,提供分钟级、小时级、天级三个选项。
执行方式选择定时调度时,需设置该参数。

*执行时间

根据执行频率,设置具体的执行时间。
执行方式选择定时调度时,需设置该参数。

*运行队列

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

  • 使用默认队列:使用系统默认的引擎队列,无需手动选择。
  • 自行指定队列:自行选择要使用的引擎队列,下拉可选当前项目下已绑定的队列。若未申请队列,请前往对应控制台申请。

    说明

    仅展示支持离线任务执行的队列选项。

引擎选择 LASEMR_SERVERLESS_SPARK 时,需设置该参数。

监控逻辑

*自定义SQL

符合 Hive 语法规范的 SQL 语句,支持 join 和 group by,group by 后需设置维度字段。

*字段名称

SQL字段名称。解析SQL语句后,自动填充,可编辑。

*字段类型

支持维度和指标两个选项。解析SQL语句后,自动填充,可编辑。

  • 维度:规则报警后,会通报维度信息,便于用户拆解报警内容。如:维度app=toutiao下,指标DAU发出报警。用户可设置多个维度。
  • 指标:监控的具体指标,需要设置报警条件。多个指标之间是独立的,任何一个满足报警条件,都会触发规则报警。

目前自定义SQL主要提供以下监控场景:

  • 当所有字段的字段类型全部设置为指标时,可进行多指标监控(单行多列)。例如,监控某个产品线的DAU、MAU、人均在线时长等指标。
  • 当至少有一个字段的字段类型设置为维度时,可进行多指标多维度监控(多行多列)。例如,监控多个产品线的DAU、MAU、人均在线时长等指标,一旦发出报警,会知道是哪个产品线下的哪个指标触发了报警。
    1. 监控配置示例如下:
      • 自定义SQL语句:SELECT APP,DAU,MAU from databases.table group by APP;
      • APP 设置成维度DAUMAU 设置成指标,并为指标设定监控阈值。
    2. 当实际结果不符合监控预期时,便发出报警,报警信息示例如下:
      • APP=toutiao, 指标DAU为XXX,触发报警。
      • APP=douyin, 指标MAU为XXX,触发报警。

*报警条件

解析SQL语句后,自动填充,可编辑。
支持数值、波动率等的报警,具体说明可参见配置模板规则的参数说明。

说明

  • 一个指标字段可设置多个报警条件,多个报警条件之间的关系默认为,可改为
  • 多个字段之间的报警关系为

高级参数设置

规则重试条件

运行失败

运行参数

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

过滤条件

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

自定义报警时间

支持按需设置北京或 UTC 时间,下拉可选。

报警设置

*报警渠道

支持邮箱+站内信、短信、电话、Webhook 和飞书的报警方式。

说明

  • 当选择短信报警时,默认会发送邮箱+站内信
  • 配置相应的飞书报警机器人后,才会显示飞书选项。报警机器人由您自行创建并配置,相关操作说明请参见告警机器人配置
  • 当选择电话报警时,会默认选中飞书,若支持飞书渠道,则会发送飞书消息。

*hookUrl

Webhook 请求地址,以 http 或 https 开头。
从下拉列表中选择 http 或 https,填写 Webhook URL 地址。欲了解详细的配置说明,请参见配置模板规则Webhook 使用说明
报警渠道选择 Webhook 时,需设置该参数。

说明

  • 设置 Webhook 后,通知消息将主动推送至对应 hookUrl 中。
  • 目前已支持飞书、钉钉和企业微信接收 Webhook 消息,填写飞书、钉钉或者企业微信机器人的 hookurl 后,通知消息将推送至对应的群中。设置Webhook机器人时,需满足以下要求:
    • 微信:无要求,直接创建相应的机器人后,复制生成的 WebhookUrl 即可。
    • 钉钉:创建机器人后,需勾选其安全设置项下的自定义关键词选项,并设置一个关键词为数据质量产品
      Image
    • 飞书:创建机器人后,需勾选其安全设置项下的自定义关键词选项,并设置两个关键词 DataLeapdataleap。

*报警对象

接收报警的用户、飞书群或值班计划接收人。

  • 报警渠道选择邮箱+站内信短信Webhook 时,需选择接收报警的用户或值班计划。
    • 用户:输入用户账号关键词后,在下拉列表中选择,支持设置多个。
    • 值班计划:输入值班计划名称的关键词后,在下拉列表中选择。设置后,报警消息将发送至值班计划中的接收人。
  • 报警渠道选择电话飞书时,需设置接收报警消息的用户、值班计划或您所加入的飞书群。
    • 用户:报警消息将发送至用户名对应的飞书中。
      输入用户账号关键词后,在下拉列表中选择,支持设置多个。
    • 飞书群:报警消息将发送至飞书群ID对应的飞书群中。
      可通过飞书开放平台的开发工具模块,查看要输入的飞书群ID。获取ID的相关说明可通过下拉列表中的获取群ID查看。
    • 值班计划:报警消息将发送至值班计划中接收人的飞书中。
      输入值班计划名称的关键词后,在下拉列表中选择。

    说明

    • 将配置好的数据质量报警机器人加入飞书群后,才可发送消息至相应的飞书群。
    • 可通过查看值班计划按钮,查看值班计划列表及值班设置是否符合预期,并支持添加新值班计划,相关操作说明请参见值班管理

*报警形式

支持普通和紧急两种形式。
报警渠道选择飞书时,才需设置该参数。

*报警发送

报警发送的次数。

  • 发送次数 X:可按需配置发送的次数,默认 1 次。
  • 无限制,直至手动ACK解除:无次数限制,若取消发送,需手动ACK(Acknowledgement)来解除报警。
    • 报警频率
      若不及时ACK,系统会从首次报警起至次日(天级监控至次日00:00点;小时级监控至次日对应小时)按照固定频率发起规则校验,若不通过则触发报警。
    • 报警ACK
      ACK表示您已知晓这个报警信息,并会采取相应行动处理,不希望再次收到报警。ACK某个监控后,在设置的时间段内不会重复报警,最长23小时59分钟,过期后将再次发起重复检测。
      综上,建议及时ACK或进行任务/数据处理!

说明

  • 报警渠道选择飞书时,才支持无限制,直至手动ACK解除选项。收到报警消息后,可在飞书端执行报警ACK操作。
  • 报警形式选择紧急时,自动选中无限制,直至手动ACK解除,不可编辑。

*发送间隔

报警发送的间隔时间,默认5分钟,可编辑。

*报警免打扰

可选择是否开启报警免打扰。
当选择开启时,可按需设置免打扰的时间段。

3 管理规则

对已创建的自定义规则,可进行相应的管理操作,步骤如下:

  1. 登录 DataLeap 控制台。
  2. 选择数据质量 > 数据监控 > 离线数据监控 > 监控对象 > 自定义规则,进入监控对象的自定义规则页面。
    Image
  3. 在页面右上角的项目下拉列表中,选择要管理的项目。
  4. 可执行以下操作:
    • 设置搜索信息,搜索符合条件的监控规则。
    • 单击某条规则名称操作列的试跑按钮,在弹出的窗口中,设置试跑时间,可以开启新的试跑。
    • 单击某条规则名称操作列的开启/关闭按钮,在弹出的确认对话框中,单击确定按钮,可以开启/关闭该规则。
    • 单击某条规则名称操作列的编辑按钮,在编辑规则页面中,可以修改其规则信息。
    • 单击某条规则名称操作列的 ... > 删除按钮,在弹出的确认对话框中,单击确定按钮,可以删除该规则。
    • 单击某条规则名称操作列的 ... > 分享链接按钮,可以复制相应对象的链接。
    • 单击某条规则名称操作列的 ... > 近7天结果按钮,跳转到运行结果页面,查看该规则截止到操作当天的7天监控结果。
    • 单击某条规则名称操作列的 ... > 转让Owner 按钮,在弹出的窗口中,可以选择将规则转让给新的owner。
    • 勾选一条或多条规则后,单击列表下方对应的按钮,执行批量操作。
      • 批量开启/关闭
      • 批量试跑
      • 批量删除
      • 批量修改报警对象
      • 批量转让Owner
      • 批量修改规则强弱