数据质量监控节点

DataWorks的数据质量监控节点可通过配置数据质量监控规则,监控相关数据源表的数据质量(例如,是否存在脏数据)。同时,支持您自定义调度策略,周期性执行监控任务进行数据校验。本文为您介绍如何使用数据质量监控节点进行任务监控。

背景信息

DataWorks的数据质量功能,帮助您第一时间感知源端数据的变更与ETL(Extract Transformation Load)中产生的脏数据,自动拦截问题任务,有效阻断脏数据向下游蔓延。避免任务产出不符合预期的问题数据,影响正常使用和业务决策。同时也能显著降低问题处理的时间成本,避免任务重新运行带来的资源费用浪费。详情请参见数据质量

使用限制

  • 支持监控的表类型:MaxCompute、E-MapReduce、Hologres、CDH Hive、AnalyticDB PostgreSQL、AnalyticDB MySQL、StarRocks。

  • 支持监控的表范围:

    • 仅支持监控当前节点(即数据质量监控节点)所在工作空间绑定的数据源中的表。

    • 每个节点仅支持监控一张表数据,但支持配置多个监控规则。不同类型的表,其监控范围如下:

      • 非分区表:默认为全表监控。

      • 分区表:需通过分区表达式指定监控某个分区。

      说明

      若您需要监控多张表,请创建多个节点使用。

  • 支持执行的操作限制:

    • 在数据开发(DataStudio)创建的数据质量监控规则,仅支持在数据开发运行,并执行修改、发布等管理操作。该规则也可在数据质量模块中查看,但不能触发调度运行,不允许执行相关管理操作。

    • 若修改数据质量监控节点中配置的监控规则,且发布节点,则该节点原来生成的监控规则会被替换。

  • 支持的地域:

    华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华北6(乌兰察布)、华南1(深圳)、西南1(成都)、中国香港、日本(东京)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、德国(法兰克福)、英国(伦敦)、美国(硅谷)、美国(弗吉尼亚)。

前提条件

  • 已创建业务流程。

    数据开发(DataStudio)基于业务流程执行不同数据源的具体开发操作,因此,创建节点前需先创建业务流程,操作详情请参见创建业务流程

  • 已创建数据源并绑定至当前工作空间,且该数据源中已创建待监控表。

    执行数据质量监控任务前,您需先创建监控节点所要监控的数据源表,详情请参见创建并管理数据源绑定数据源或集群任务开发

  • 已创建资源组。

    仅支持使用Serverless资源组(推荐)或独享调度资源组运行数据质量监控节点。详情请参见资源组管理

  • (可选,RAM账号需要)进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发空间管理员(权限较大,谨慎添加)角色权限。添加成员并授权,详情请参见为工作空间添加空间成员

步骤一:创建数据质量监控节点

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 右键单击目标业务流程,选择新建节点 > 数据质量 > 数据质量监控

  3. 新建节点对话框输入节点名称,单击确认,节点创建完成,您可在节点中进行对应任务的开发与配置。

步骤二:配置数据质量监控规则

1选择待监控表

单击选择表,在选择表对话框根据条件搜索并选择需要监控的目标表。image

2配置监控数据范围

  • 非分区表:默认为全表监控,可忽略该步骤。

  • 分区表:需选择要监控的分区数据,支持使用调度参数。单击预览即可验证分区表达式的计算结果是否正确。image

3、配置数据质量监控规则

您可新建规则,也可导入已有规则使用。配置的规则默认为启用状态。

  • 新建规则

    单击新建规则,即可基于模板或自定义SQL创建数据质量监控规则,不同方式的介绍及配置详情如下。

    方式一:基于系统模板创建

    平台内置多种监控规则,您可基于规则模板快速创建数据质量监控规则,操作步骤如下图。

    说明

    您也可在左侧系统模板列表,找到所需规则模板,单击+使用进行创建。

    image

    系统规则模板参数说明

    参数

    描述

    规则名称

    您可以自定义规则名称。

    规则模板

    定义需要对表进行哪种类型规则校验。

    数据质量为您提供大量内置表级别、字段级别的监控模板可直接选择。详情请参见查看内置规则模板

    说明

    平均值、汇总值、最小值和最大值仅对数值型字段生效。

    规则范围

    该规则应用的范围,表级别规则默认为当前表,字段级别规则选择具体字段。

    比较方式

    定义规则具体怎么校验表数据是否符合预期。

    • 手动设置:自定义数据产出结果与规则的比较方式。

      不同规则模板,可选择的比较方式不同,具体请以实际界面为准。

      • 支持数值型结果对比,通常与固定值(即期望值)进行比较,比较方式包括大于大于等于等于不等于小于小于等于。支持您自定义正常数据范围(正常阈值)与异常数据范围(红色阈值)。

      • 支持波动型结果对比,通常是进行范围比较,比较方式包括绝对值上升下降。支持您自定义正常数据范围(正常阈值),您还可以根据异常偏离程度定义数据产出存在异常(橙色阈值)与数据产出不符合预期(红色阈值)。

    • 智能动态阈值:您无需手动配置波动阈值或期望值,系统会根据智能算法,自动判断合理阈值;若发现数据异常,会即时触发告警或阻塞。动态阈值也可支持强、弱规则。

      说明

      自定义SQL自定义范围、动态阈值类型的质量规则支持智能动态阈值比较方式。

    监控阈值

    • 比较方式手动设置时,您可以自行设置正常阈值红色阈值

      • 正常阈值:当数据质量规则校验结果满足此处设置的值时,说明数据校验符合预期。

      • 红色阈值:当数据质量规则校验结果满足此处设置的值时,说明数据校验不符合预期。

    • 当规则为波动型校验时,您需要指定橙色阈值

      • 橙色阈值:当数据质量规则校验结果满足此处设置的值时,说明数据存在异常但不影响业务运行。

    保留问题数据

    当规则为启用状态时,在本条数据质量监控规则校验不通过的情况下,系统自动创建问题数据表存储质量规则校验过程中发现的问题数据。详情请参见:管理问题数据

    重要
    • 目前仅支持MaxCompute表配置保留问题数据功能。

    • 目前仅部分数据质量监控规则支持配置保留问题数据功能。支持保存问题数据的规则,详情请参见:附录:支持保留问题数据的规则列表与问题数据口径

    • 受启停状态影响,若规则为停用状态,则不执行保留问题数据。

    启用状态

    规则的启用停用状态,用于控制该规则是否在生产环境中运行。

    重要

    状态设置为停用时,规则将无法触发测试运行,并且不会被关联的调度任务触发运行。

    重要程度

    设置规则在业务中的强弱程度。

    • 强规则:比较重要的规则,如果出现红色异常,默认会阻塞质量监控关联的调度任务的执行。

    • 弱规则:普通规则,如果出现红色异常,默认不会阻塞质量监控关联的调度任务的执行。

    描述

    您可以对该规则进行补充说明。

    方式二:基于自定义模板创建

    使用该方式之前,您需先前往数据质量 > 质量资产 > 规则模板库创建自定义规则模板,才可基于该模板创建数据质量监控规则,详情请参见创建并管理自定义规则模板

    基于自定义模板创建数据质量规则的操作步骤如下图。

    说明

    您也可在左侧自定义模板列表,找到所需规则模板,单击+使用进行创建。

    image

    自定义规则模板参数说明

    此处仅展示自定义规则模板独有参数,其他参数解释,请参见系统规则模板参数说明。

    配置项

    说明

    FLAG参数

    用于定义需要在数据质量校验SQL执行前提前执行的SET命令。

    SQL

    定义完整的SQL校验逻辑,要求返回结果为一行一列,且结果为数值型。

    自定义SQL中,请使用中括号的形式匹配表的分区表达式。示例如下:

    select count(*) from ${tableName} where ds=$[yyyymmdd];
    说明
    • ${tableName}变量取值将根据实际监控的表动态替换。

    • 配置分区表达式,详情请参见附录二:内置分区表达式

    • 如果您为表创建了质量监控,则通过此方式配置规则后,质量监控中设置的数据范围将不会生效。规则将以此处SQL语句中的WHERE为准,确认需要校验的表分区。

    方式三:基于自定义SQL创建

    该方式支持您自定义表的数据质量校验逻辑。

    image

    自定义SQL参数说明

    此处仅展示自定义SQL独有参数,其他参数解释,请参见系统规则模板参数说明。

    配置项

    说明

    FLAG参数

    用于定义需要在数据质量校验SQL执行前提前执行的SET命令。

    SQL

    定义完整的SQL校验逻辑,要求返回结果为一行一列,且结果为数值型。

    自定义SQL中,请使用中括号的形式匹配表的分区表达式。示例如下:

    select count(*) from <table_name> where ds=$[yyyymmdd];
    说明
    • 您需要在实际配置中将<table_name>替换为当前实际操作的表名,实际监控的表由此处SQL决定。

    • 配置分区表达式,详情请参见附录二:内置分区表达式

    • 如果您为表创建了质量监控,则通过此方式配置规则后,质量监控中设置的数据范围将不会生效。规则将以此处SQL语句中的WHERE为准,确认需要校验的表分区。

  • 导入已有规则

    若待监控表在数据质量功能模块已创建相关监控规则,您可通过导入方式快速克隆相应规则;若未创建,请先前往数据质量创建,详情请参见配置规则:按表(单表)

    说明

    该方式支持批量导入多个规则,支持对表字段级别数据配置监控规则。

    单击导入规则,您可通过规则ID/名称、规则模板、关联范围(即全表或表的某些字段)搜索并选择需导入的规则。

    image

4、配置运行资源

用于选择执行质量规则检测所需的运行资源(即在哪个数据源中运行质量规则监控任务),默认为待监控表所在的数据源。

说明

如选择其他数据源,需确认数据源是否拥有该表的访问权限。

步骤三:配置检测结果处理策略

在节点编辑页面的质量监控处置区域,您可针对数据质量监控规则校验的异常结果配置处理策略及订阅方式。

异常结果类别

校验异常结果类别如下。

异常结果类别

说明

强规则 · 校验失败

  • 强弱:表示规则的重要程度。

  • 红色异常:数据校验指标结果命中红色质量异常阈值范围。通常是该质量异常阈值范围的定义为“数据校验不符合预期,会严重影响后续业务运行”。

  • 橙色异常:数据校验指标结果命中橙色质量异常阈值范围。通常是该质量异常阈值范围的定义为“数据校验存在异常,但不影响后续业务运行”。

  • 校验失败:校验任务运行失败。例如:监控的分区未产出,或用户用于监控的SQL运行失败。

强规则 · 红色异常

强规则 · 橙色异常

弱规则 · 校验失败

弱规则 · 红色异常

弱规则 · 橙色异常

异常结果处理策略

对于规则校验产生的异常结果,您可按需配置处理策略:

  • 不忽略:可配置检测到某异常类别(例如,强规则出现红色异常)时,停止运行当前节点,并将节点置为失败状态。

    说明
    • 当前节点运行失败后,下游节点将不执行,以此阻塞生产链路,避免问题数据污染扩散。

    • 支持添加多种异常结果类别进行检测。

    • 通常,当异常产生的影响较大,会阻塞下游任务执行时,可使用该策略。

  • 忽略:忽略异常,继续执行下游节点。

异常结果订阅方式

您可配置异常结果的接收方式(例如,邮件通知),当产生异常结果时,平台会以相应方式推送异常信息,以便您及时发现并处理异常。

说明

平台支持多种接收方式,具体请以实际界面为准。其中:

  • 邮件、邮件和短信、电话仅支持选择当前账号下的用户作为接收人。请确认相关人员的邮箱或手机号配置正确,详情请参见查看和设置报警联系人

  • 其他方式需输入接收信息的Webhook地址。获取方式,请参见获取Webhook

步骤四:配置任务调度

如您需要周期性执行创建的节点任务,可单击节点编辑页面右侧的调度配置,根据业务需求配置该节点任务的调度信息。配置详情请参见任务调度属性配置概述

说明

您需要设置节点的重跑属性依赖的上游节点,才可以提交节点。

步骤五:调试任务

您可根据需要执行如下调试操作,查看任务是否符合预期。

  1. (可选)选择运行资源组、赋值自定义参数取值。

    • 单击工具栏的高级运行图标,在参数对话框选择调试运行需使用的调度资源组。

    • 若您的任务使用了调度参数,可在此处为变量赋值,用于调试。参数赋值逻辑,详情请参见任务调试流程

      调度参数配置示例如下图。

      image

  2. 保存并运行任务。

    单击工具栏的保存图标,保存任务;单击运行图标,运行任务。

    任务运行完成后,您可在节点编辑界面下方查看运行结果。若运行失败,可根据相应报错进行排查处理。

  3. (可选)冒烟测试。

    如您希望在开发环境进行冒烟测试,查看调度节点任务的执行是否符合预期,则可在节点提交时,或节点提交后执行冒烟测试,操作详情请参见执行冒烟测试

步骤六:提交发布任务

节点任务配置完成后,需执行提交发布操作,提交发布后节点即会根据调度配置内容进行周期性运行。

说明

执行提交发布操作后,当前数据质量监控节点及节点内配置的质量规则均会被提交发布。

  1. 单击工具栏中的保存图标,保存节点。

  2. 单击工具栏中的提交图标,提交节点任务。

    提交时需在提交对话框中输入变更描述,并根据需要选择是否在节点提交后执行代码评审。

    说明
    • 您需设置节点的重跑属性依赖的上游节点,才可提交节点。

    • 代码评审可对任务配置进行质量把控,防止由于配置有误,未经审核直接发布上线后出现报错。如进行代码评审,则提交的节点必须通过评审人员的审核才可发布,详情请参见代码评审

如您使用的是标准模式的工作空间,任务提交成功后,需单击节点编辑页面右上方的发布,将该任务发布至生产环境执行,操作请参见发布任务

后续步骤

  • 任务运维:任务提交发布后,会基于节点的配置周期性运行,您可单击节点编辑界面右上角的运维,进入运维中心查看周期任务的调度运行情况(例如,节点运行状态、触发规则详情等)。详情请参见查看并管理周期任务

    示例查看某实例运行时触发的质量规则详情。

    image

  • 数据质量:数据质量监控规则发布后,您也可进入数据质量模块查看规则详情,但不允许执行修改、删除等管理操作。详情请参见数据质量概述