数据治理指南

本文详细阐述了数据治理在Hive数仓中的关键要素,包括数据完整性、准确性、一致性以及及时性评估,同时介绍了数据质量管理流程、资产等级划分、在线和离线系统卡点校验,以及DQC在数据准确性和及时性保障中的作用。
摘要由CSDN通过智能技术生成

数据治理指南

数据治理指南

不同行业有不同的评估数据质量的标准。对于Hive数仓来说,数据质量可以从完整性、准确性、一致性和及时性共四个角度进行评估。

  • 完整性

    完整性是指数据的记录和信息是否完整,是否存在数据缺失情况。数据缺失主要包括记录的缺失和具体某个字段信息的缺失,两者都会造成统计结果不准确。

    完整性是数据质量最基础的保障。例如,某个稳定业务的数据量每天约为100万条记录,某天突然下降了1万条,则可能是出现了记录缺失。例如,某科高考成绩表中,每个考卷分数都对应一个准考证号,当准考证号字段的空值数大于0时,则可能是出现了信息缺失。

  • 准确性

    准确性是指数据中记录的信息和数据是否准确、是否存在异常或者错误的信息。例如,成绩单中分数出现负数或订单中出现错误的买家信息等,这些数据都是问题数据。确保记录的准确性也是保证数据质量必不可少的一部分。

  • 一致性

    一致性通常体现在跨度很大的数据仓库中。 例如,某公司有很多业务数仓分支,对于同一份数据,在不同的数仓分支中必须保证一致性。例如,从在线业务库加工到数据仓库,再到各个数据应用节点,用户ID必须保持同一种类型,且长度也要保持一致。因此,您需要设计数仓的公共层以确保数据的一致性。

  • 及时性

    保障数据的及时产出才能体现数据的价值。例如,决策分析师通常希望当天就可以看到前一天的数据。若等待时间过长,数据失去了及时性的价值,数据分析工作将失去意义。

数据质量管理流程

数据质量管理是通过划分数据资产等级和分析元数据的应用链路,对不同资产等级的数据采取相对应的质量管理方式。

数据质量管理流程图如下。

流程图

数据管理流程说明如下:

  1. 分析业务场景,根据应用的影响程度,确定当前以及生产链路上的数据资产等级。
  2. 在各个加工环节上根据不同资产等级对数据采取不同的质量管理方式。
  3. 对数据风险点进行监控,包括数据质量风险和数据及时性监控。
  4. 根据业务过程中出现的问题,对监控方案进行汇总分析和改进。

数据资产等级定义

数据资产等级定义

根据数据质量不满足完整性、准确性、一致性、及时性时,对业务的影响程度划分数据的资产等级。通常,划分为5个性质的等级:

  • 毁灭性质:数据一旦出错,将会引起重大资产损失,面临重大收益损失等。标记为A1。
  • 全局性质:数据直接或间接用于企业级业务、效果评估和重要决策等。标记为A2。
  • 局部性质:数据直接或间接用于某些业务线的运营、报告等,如果出现问题会给业务线造成一定的影响或造成工作效率降低。标记为A3。
  • 一般性质:数据主要用于日常数据分析,出现问题带来的影响极小。标记为A4。
  • 未知性质:无法明确数据的应用场景。标记为Ax。

这些性质的重要性依次降低,即重要程度为A1>A2>A3>A4>Ax。如果一份数据出现在多个应用场景汇总,则根据其最重要程度进行标记。

分析数据链路

定义数据资产等级后,您可以从数据流转链路开始进行数据资产等级打标,完成数据资产等级的确认,给不同的数据定义不同的重要程度。

Hive进行数据加工基本流程为从业务系统上产生数据,通过同步工具进入数据数仓系统,数据在数仓中进行清洗、加工、整合、算法、模型等一系列运算后,再通过同步工具输出到数据产品中进行消费。整个流程数据都存放在表中,流转链路大致如下图所示。img

在数据流转链路上,您需要整理各个表对应的应用业务产品。通过给这些应用业务产品划分数据资产等级,结合数据的上下游血缘,将整个链路打上某一类资产等级的标签。例如,一个A2等级的数据应用产品对应的导出表Table1、Table2、Table3,几个表都打上A2-xxx数据产品标记。根据血缘往上追溯,将这几个表的上游都打上A2的标记,一直标记到源数据业务系统,如图所示。

img

数据加工过程卡点校验

在线系统卡点校验

在线业务系统产生的数据是数据仓库的重要数据来源。在线业务系统复杂多变,每次变更都会产生数据的变化。因此,数据仓库需要适应多变的业务发展,及时保障数据的准确性。此外,您还需要考虑如何能将在线业务的变更高效地通知给基于Hive的离线数据仓库。

建议您同时关注工具和人员管理,既要在工具上自动捕捉每一次业务的变化,也要求开发人员进行业务变更通知。具体的卡点校验原则如下:

  • 关注发布平台的变更。

    在业务进行重大变更时,订阅此发布过程,通知离线开发人员,使其知晓此次变更内容。

    在业务系统复杂、日常发布变更频繁的情况下,如果每次变更都通知离线开发人员,会造成不必要的时间浪费,也影响业务迭代效率。此时,您可以通过使用数据资产等级的标识对业务进行打标。针对高等级的数据资产,整理出会影响数据的加工的变更,及时通知离线开发人员。例如,对于财务报表,如果业务系统的改造影响财务报表的计算,导致约定好的计算口径被业务系统变更修改,则这种情况必须告知离线开发人员,离线开发人员也必须主动关注这类发布变更通知。

    说明

    发布平台只是一种统称,指代企业自身的在线业务发布平台。

  • 关注数据库的变更。

    随着业务的发展,业务数据库(数据仓库的数据源)会出现数据库扩容或者DDL变更,这些变更都要主动通知到离线开发人员。基于Hive的数据仓库在进行离线数据抽取时,通过数据集成工具,可能会限制某个业务数据库表。如果该数据库表发生扩容或者迁移等,数据集成工具感知不到,可能导致数据抽取错漏,而一旦错漏,会影响下游所有依赖该表的应用,因此建议业务数据库也需要有库表变更通知。

  • 关注操作工具的人员。

    操作工具只是一种辅助手段,操作工具的人员才是核心。数据资产等级的上下游打通的过程需要通知给在线开发人员,使其知晓哪些是重要的核心数据资产,提高在线开发人员的数据风险意识。您可以通过培训等方式,将离线数据的诉求、离线数据的加工过程、数据产品的应用方式告知在线业务开发人员,使其了解数据的重要性、价值及风险。确保在线开发人员在完成业务目标时,也要考虑数据的目标,做到业务端和数据端一致。

离线系统卡点校验

将离线业务系统生成的数据,通过同步工具进入数据仓库系统。数据在数据仓库中进行清洗、加工、整合、算法和建模等一系列运算后,再通过同步工具输出到数据产品中进行消费。整个流程中,先有数据加工,才有数据仓库模型和数据仓库代码的建设。因此,保障数据加工过程中的质量是保障离线数据仓库整体数据质量的重要环节。

您可以通过代码编辑器提交各种任务加工Hive中的数据。无论您使用什么工具,都会经历代码开发、测试、发布、运维及变更的过程。您可以对这个过程中的每个环节进行卡点校验。

  • 代码提交时的卡点校验。

    即在SQL提交前进行相关规则校验。目前没有直接可用的工具辅助校验,您可以自己开发相关的工具。规则分类如下:

    • 代码规范类规则。

      例如,表命名规范、生命周期设置及表注释等。

    • 代码质量类规则。

      例如,分母为0提醒、NULL值参与计算影响结果提醒及插入字段顺序错误等。

    • 代码性能类规则。

      例如,分区裁剪失效、扫描大表提醒及重复计算检测等。

  • 任务发布上线时的卡点校验。

    为保障线上数据的准确性,每次变更都需要经过测试再发布到线上生产环境,且生产环境测试通过后才算发布成功。

  • 任务变更或数据重跑。

    在进行更新操作前,需要通知下游变更原因、变更逻辑、变更时间等信息。下游对此次变更没有异议后,再按照约定时间执行发布变更,这样可以将变更对下游的影响降到最低。

数据风险点监控

在线数据风险点监控

在线业务系统的数据生成过程中必须确保数据质量,根据业务规则对数据进行监控。

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

离线数据风险点监控

  • 数据准确性

    数据准确性是数据质量的关键,也是所有离线系统加工时的第一保障要素。下面为您介绍数据质量(DQC)保障离线数据的准确性。

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

    img

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

    DQC数据监控规则有强规则和弱规则:

    • 强规则:一旦触发报警就会阻断任务的执行(将任务置为失败状态,使下游任务不会被触发执行)。
    • 弱规则:只报警但不阻断任务的执行。

    DQC提供常用的规则模板,包括表行数较N天前波动率表空间大小较N天前波动率字段最大/最小/平均值相比N天前波动率字段空值/唯一个数等。

    DQC的工作流程如下图所示。

    img

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

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

  • 数据的及时性

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

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

    • 任务优先级

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

      对于平台的调度任务,调度是一个树形结构,当配置了叶子节点的优先级,这个优先级会传递到所有的上游节点,而叶子节点通常就是服务业务的消费节点。因此,在优先级的设置上,要先确定业务的资产等级,等级越高的业务对应的消费节点优先级越高,优先调度并占用计算资源,确保高等级业务的准时产出。

    • 任务报警

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

    • 智能监控

      对离线任务调度时,对调度任务进行监控告警。根据监控规则和任务运行情况,智能监控决策是否报警、何时报警、如何报警以及给谁报警。智能监控会自动选择最合理的报警时间、报警方式以及报警对象。

      智能监控旨在:

      • 降低您的配置成本。
      • 杜绝无效报警。
      • 自动覆盖所有重要任务。

      img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值