本文为您介绍在线数据风险点监控和离线数据风险点监控。

在线数据风险点监控

在线业务系统的数据生成过程中必须确保数据质量,根据业务规则对数据进行监控。
说明 MaxCompute本身未提供相应的监控工具,您可以借助DataWorks进行监控。详情请参见概述

您可以对数据库表的记录进行规则校验,制定监控规则。在业务系统中,当每个业务过程进行数据入库时,对数据进行校验。例如,交易系统中,订单拍下时间、订单完结时间、订单支付金额、订单状态流转都可以配置监控校验规则。订单拍下时间不会大于当天时间,也不会小于业务系统上线时间,一旦出现异常校验则报错。当业务复杂、规则繁多、规则配置的运行成本高时,您也可以根据数据资产等级进行监控。

离线数据风险点监控

  • 数据准确性

    数据准确性是数据质量的关键,也是所有离线系统加工时的第一保障要素,详情请参见概述。下面为您介绍使用DataWorks的数据质量(DQC)保障MaxCompute离线数据的准确性。

    说明 执行数据质量需使用DataWorks任务调度资源。
    DQC以数据集(DataSet)为监控对象,当离线MaxCompute数据发生变化时,DQC会对数据进行校验,并阻塞生产链路,以避免问题数据污染扩散。DQC还提供了历史校验结果的管理,方便数据质量的分析和定级。

    通过配置DQC的数据质量校验规则,可以实现在数据处理过程中进行自动的数据质量监控。DQC可以监控数据质量并报警,但它不对数据产出进行处理,需要报警接收人判断如何处理。

    DQC数据监控规则有强规则和弱规则:
    • 强规则:一旦触发报警就会阻断任务的执行(将任务置为失败状态,使下游任务不会被触发执行)。
    • 弱规则:只报警但不阻断任务的执行。
    DQC提供常用的规则模板,包括表行数较N天前波动率表空间大小较N天前波动率字段最大/最小/平均值相比N天前波动率字段空值/唯一个数等。
    DQC的工作流程如下图所示。

    DQC的检查通过运行SQL任务实现。该SQL任务嵌套在整体任务中,如果检查次数过多会影响整体的任务执行性能。因此,哪些数据需要配置DQC规则、应该配置什么规则,也需要根据数据资产等级来确定。例如A1、A2类数据监控率要达到90%以上,规则类型需要3种以上,而不重要的数据资产没有强制要求。

    检测规则由离线开发人员配置,确保数据准确性。不同的业务会有不同的业务规则的约束,这些规则来源于数据产品或消费的业务需求。您可以通过配置消费节点,然后上推到离线系统的起点进行监控,实现规则影响的最小化。

  • 数据的及时性

    在确保数据准确性的前提下,您需要进一步让数据能够及时提供服务,否则数据的价值将大幅降低。确保数据及时性是保障数据质量的重要一环。

    基于MaxCompute的离线任务对数据产出有时间要求。例如,常见的以天作为时间间隔的天任务,一些决策报表要求早上9点或更早的时间点之前必须产出。为确保数据完整性,每天任务通常都是0点开始执行,计算前一天的数据。这些任务大多在深夜运行,要确保数据按时产出,需要考虑任务的执行优先级以及任务执行失败或时间过长时的报警问题。

    • 任务优先级

      MaxCompute平台上任务优先级都一样,无法手动配置。因此您需要从调度平台入手,优先调度下发重要的任务。

      对于DataWorks平台的调度任务,当对应的项目(工作空间)使用包年包月资源时,可以通过智能监控工具进行优先级设置。DataWorks的调度是一个树形结构,当配置了叶子节点的优先级,这个优先级会传递到所有的上游节点,而叶子节点通常就是服务业务的消费节点。因此,在优先级的设置上,要先确定业务的资产等级,等级越高的业务对应的消费节点优先级越高,优先调度并占用计算资源,确保高等级业务的准时产出。

      当DataWorks的节点任务所属的项目使用的是MaxCompute的按量计费资源时,智能监控配置的优先级无效。因此,您需要评估是否要购买包年包月资源,同时对任务进行优化,减少不必要的资源浪费,实现在有限的资源下高效完成计算。

    • 任务报警

      任务报警和优先级类似,通过DataWorks的智能监控工具进行配置,只需要配置叶子节点即可向上游传递报警配置。任务执行过程中,可能出错或延迟,为了保障最重要数据(即资产等级高的数据)产出,需要立即处理出错并介入处理延迟。

    • DataWorks智能监控
      DataWorks对MaxCompute进行离线任务调度时,提供智能监控工具,对调度任务进行监控告警。根据监控规则和任务运行情况,智能监控决策是否报警、何时报警、如何报警以及给谁报警。智能监控会自动选择最合理的报警时间、报警方式以及报警对象。
      说明 关于智能监控详情请参见智能监控概述
      智能监控旨在:
      • 降低您的配置成本。
      • 杜绝无效报警。
      • 自动覆盖所有重要任务。