监控规则是数据质量(DQC)的核心。数据质量支持EMR(E-MapReduce)、Hologres、AnalyticDB for PostgreSQL、MaxCompute和DataHub监控,本文为您介绍如何配置DataHub监控。

背景信息

DataHub实时数据监控支持以下功能:
  • 支持数据断流数据延迟两种监控模板。
  • 自定义Flink SQL、维表JOIN、多流JOIN以及窗口函数等流计算特性。

操作步骤

  1. 新增DataHub数据源。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据集成
    4. 在左侧导航栏,单击数据源,进入工作空间管理 > 数据源管理
    5. 单击右上方的新增数据源添加DataHub数据源,详情请参见配置DataHub数据源
  2. 选择数据源。
    1. 单击左上方的图标图标,选择全部产品 > 数据治理 > 数据质量
    2. 在左侧导航栏,单击监控规则
    3. 选择引擎/数据源DataHub,显示当前数据源下所有的Topic。
      参数 描述
      配置Flink/SLS规则 添加数据源后,Flink或SLS资源会根据数据源拉取相关的信息。
      Topic列表 DataHub数据源下所有Topic的名称,您可以在相应Topic后进行下述操作:
      • 配置监控规则:对当前Topic创建规则,支持创建模板规则和自定义规则。
      • 订阅管理:查看当前Topic的订阅人,您可以快捷修改订阅人、报警方式及配置钉钉群报警。此处修改的报警方式对所有订阅人有效。
      维度表 对Topic创建自定义规则JOIN时使用。如果采集到的数据有限,则需要对数据流补齐字段。进行数据分析前,将所需的维度信息进行补全,此时需要在数据质量中对这张维度表进行声明。

      DataHub支持AliHBase维表、Lindorm维表、RDS维表、OTS(TableStore)维表、TDDL维表、MaxCompute维表。

      Flink SQL中没有专门为维表设计的DDL语法,使用标准的create table语法即可。但需要额外增加一行period for system_time的声明,此行声明定义了维表的周期,即表明该表是一张会变化的表。
      说明 声明一张维表时,必须指明唯一键。维表JOIN时,on的条件必须包含所有唯一键的等值条件。
    4. 单击Topic列表页签相应Topic后的配置监控规则
  3. 在相应Topic的监控规则页面,单击创建规则
  4. 配置监控规则。
    数据质量支持模板规则自定义规则两种类型:
    • 单击添加模板规则,模板类型包括数据延迟数据断流
      例如选择模板类型为数据延迟数据延迟
      参数 描述
      规则名称 输入规则名称,最多255个字符。
      字段类型 默认为表级规则。
      模板类型
      • 数据延迟:记录业务时间字段内,数据产生于流入DataHub通道的时间差,超过设定时间立即报警。
        说明 业务时间字段支持TIMESTAMP和STRING(yyyy -MM -dd H dd HH:mm:ss)两种类型。
      • 数据断流:允许在某一时间段内没有数据流入,当超过允许时间,则触发告警。

        配置数据断流前,请首先在Flink中购买服务并创建项目。然后单击页面右上方的配置Flink/SLS规则,输入Flink项目名称,单击确认

      告警记录数阈值 允许出现数据延迟的数量上限,超过上限触发数据质量告警。只有模板选择数据延迟时,才需要配置该参数。
      业务时间字段 Topic中时间字段的字段名称,支持TIMESTAMP和STRING(yyyy-MM-dd HH:mm:ss)两种类型,只有模板选择为数据延迟时才需配置本参数。
      告警频次 告警频次包括10分钟、30分钟、1小时和2小时。
      橙色阈值 以秒为单位,仅支持输入整数,且必须小于红色阈值。
      红色阈值 以秒为单位,仅支持输入整数,且必须大于橙色阈值。
    • 如果对DataHub规则有其它的使用方式,可以单击添加自定义规则进行创建。
      说明
      • Select的字段必须是一列且能够与橙色阈值和红色阈值进行数值对比。
      • 自定义规则下,From子句必须包含该Topic,且包含该Topic中所有的列。
      参数 描述
      规则名称 输入规则名称,需要在Topic内唯一,最多支持20个字符。
      规则脚本 自定义编写SQL来设定规则,Select的结果字段必须唯一。示例如下:
      • 简单SQL。
        select id as a from zmr_tst02;
      • 与维表JOIN查询,维表名称(test_dim)。
        select e.id as eid
        from zmr_test02 as e 
        join test_dim for system_time as of proctime() as w 
        on e.id=w.id
      • 两个Topic进行JOIN查询,另一个Topic名称(dp1test_zmr01)。
        select count(newtab.biz_date) as aa
        from (select o.*
        from zmr_test02 as o
        join dp1test_zmr01 as p
        on o.id=p.id)newtab
        group by id.biz_date,biz_date_str,total_price,'timestamp'
      橙色阈值 以分钟为单位,仅支持输入整数,且必须小于红色阈值。
      红色阈值 以分钟为单位,仅支持输入整数,且必须大于橙色阈值。
      最小告警间隔 允许告警的最小时间差,以分钟为单位。
      附加文本 对当前自定义Topic的描述。
  5. 单击批量添加,添加创建的规则至Topic中。
    • 单击查看日志,查看该规则的运行日志。
    • 单击订阅管理,您可以在该页面查看、修改当前规则的订阅人,也可以修改告警通知方式,对所有订阅人生效。
      您可以将任务报警添加到钉钉群中,支持邮件通知邮件和短信通知钉钉群机器人钉钉群机器人@ALL四种方式。
      说明 添加钉钉群机器人获取Webhook地址后,复制Webhook地址至订阅管理即可。详情请参见添加钉钉群机器人获取Webhook地址