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

在线数据风险点监控

在线业务系统的数据生成过程中必须确保数据质量,根据业务规则对数据进行监控。MaxCompute本身不包含配套的工具。

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

离线数据风险点监控

  • 数据准确性

    数据准确性是数据质量的关键,也是所有离线系统加工时的第一保障要素。本文主要介绍使用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点开始执行,计算前一天的数据。这些任务大多在深夜运行,要确保数据按时产出,需要考虑任务的执行优先级(当Project里任务很多而资源有限时)以及任务执行失败或时间过长时的报警问题。

    • 任务优先级

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

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

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

    • 任务报警

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

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