如何保障大数据质量?

2,057 阅读4分钟

一、数据质量保障原则

  1. 完整性:数据记录,信息需要完整,需要避免数据或字段是否有缺失;比如用户表用户ID字段都为空,此为异常;
  2. 准确性:数据和数据信息需要准确,比如一笔支付记录,支付金额都为空,此为异常;
  3. 一致性:多出现在跨度大的数据仓库体系,多个业务线使用同一份数据需要一致,比如各个离线系统,实时系统使用同一个用户ID的时候,ID格式统一,字段类型,长度,加密方式等都保持一致(所以一般会建设公共层,dwd,对数据统一加密,统一规整化等操作);
  4. 及时性:数据需要及时产出,一般离线系统需要看到前一天的数据,实时系统要求更高。

二、数据质量方法

  1. 消费场景知晓

    主要是对数据进行资产等级划分,高等级资产代表对报表质量准确性,风险性要求较高,甚至可能给公司带来损失等,反之,风险低,损失低;不同等级数据在ETL等过程则采用不同的处理方式,例如数据检验级别不同。

  2. 数据生产加工各个环节卡点校验

    包含实时和离线两类系统在数据生产加工上的数据卡点校验,可以根据资产等级来设计不同等级的校验等级。

    实时:

     业务系统变更,是否需要通知下游;
     当出现新业务数据时,是否要纳入统计中。
    

    离线:

     代码开发,测试,发布和历史或错误数据会刷等环节的卡点校验。
    

    例如:

     如果公司有发版系统,业务发版可以通知下游;
     业务库ddl发生变化,监控起来,主动告警下游,评估风险;
     也要提高业务开发人员对一些重要资产数据对下游造成风险的意识;
     不管是业务源变更还是数仓中哪个环节变更,也应该通知变更,减少损失。
    
  3. 风险点监控

    主要是指针对数据在日常运行过程中可能出现的数据质量和实效等问题进行监控,也是包含实时和离线两个方面。可以针对实时离线系统产出的数据进行规则校验;实效如果延迟可以考虑告警技术人员,快速修复。

    例如:

    • 我们可以构建数据检验系统,实时数据,我们可以再消费一份相同数据出来,然后再根据我们配置的校验规则进行校验,异常可以通知告警系统进行告警;
    • 离线数据,我们也可以根据检验系统配置的对应规则,来校验每个加工环节的数据准确性,我们把校验的任务嵌套在主任务之中。但是校验太多也会影响整体性能。(可以是SQL校验,毕竟大数据测试大多也使用SQL来校验)数据及时性监控,举个例子可以考虑记录报表任务每天流程运行时长,其中每个任务运行时长,根据一般情况下运行到哪个任务一般到几点,如果任务延迟了可以告警值班同事或者负责人处理(任务经常是夜间跑批,出了问题就得晚上起来处理,称之为夜起,夜起率越高,越需要优化);
    • 实时任务本身可以有延迟发现机制。
  4. 质量衡量

    主要是事前和事后的衡量,例如实时校验数据异常,异常频率大,属于事前;事后的衡量主要是跟进质量问题,确定问题原因,责任人,解决情况等,也需要复盘等避免事件再次发生。

    更细可以制定故障等级之类,每次故障都可记录一次。

  5. 质量配套工具

    针对数据质量的各个方面,要有相关工具来进行保证,提高效能。