开发者学堂课程【场景实践 - 使用 MaxCompute 进行数据质量核查:数据质量影响因素 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/520/detail/7039
数据质量影响因素
内容介绍:
一、需求过程引发
二、数据源引发
三、统计口径引发
四、系统自身
一个系统建好之后,数据是自然而然产生的。那为什么数据会产生这样那样的质量问题呢?又是哪些方面哪些因素导致了数据质量出现了问题?
一个系统在刚开始搭建的时候,人们期望着做一个完美的系统出来,刚开始使用的时候,可能是因为业务数据比较少,或者流程相对比较正规,质量还是比较正常,就算是有时候出了一点小问题,也可以解决。但随着公司业务不断的发展,数据质量管理环节不断的深入就会出现一些新的问题情况,这些问题的情况就对公司的业务发展甚至公司的决策造成困扰。一般情况下,会根据数据质量,问题来源和具体的原因
将数据质量影响因素分成几个大类。下面我们就来具体看一下这几大类数据量影响因素。
一、需求过程引发
1、需求过程引发的问题主要指需求设计、开发、测试、上线等过程中引发的数据质量问题。
2、此类问题的原因主要是因为需求过程中的管理机制和流程不健全导致:
从需求内容上看,需求分析的过程中部分需求不明确或者口径定义不清晰。在沟通过程中,可能会造成需求信息的丢失和准确性的降低,可能偶尔还会出现需求往复变更的情况。
所以,需求提出人应该尽可能的要明确,或者叫细化需求,保证所有参与这个需求的人员或部门,能够很好的沟通并且形成一种比较标准化的业务口径。然后以这种标准化的业务口径来指导开发后续的所有相关工作。
另一方面,组织人员需求过程中,可能会涉及到比较多的环节,设计的人员也比较多,有可能这个环节的人员配备不完善或者职责分工不明,而造成了需求没有办法很及时的沟通或者很有效的沟通,甚至更有甚者会出现责任推诿的现象。
而且可能安排了相关的组人员,但是如果这个人员对业务的理解和所处的角度不同,也可能会造成信息的口径、库表的定义与现有系统的融合方面出现了不一致,或者是冲突,最终也就出现了数据质量问题。
数据源引发的
二、数据源引发
1、数据源引发的问题是指由于上游数据源不完善或不规范,导致下游系统受到影响,出现数据质量问题。
2、数据源引发的数据质量问题是分析系统数据质量问题的主要来源,主要体现在如下几个方面:
⑴信息不正确
源系统提供的数据无效或者错误,违反了数据的约束规则,或者违反数据的业务规则,这就是一种信息不正确。
⑵信息不完整
源系统中某些信息缺失或者是没有填充,虽然不影响系统正常运转,但这种信息的缺失会影响数据仓库的应用分析。
比如,客户职业没有填写,或者客户的学历年收入、地址全都为空,这些就是信息不完整的体现。
⑶信息不一致
信息不一致主要是指当一个信息来自多个源系统的时候,可能会之间存在的冲突和差异。
比如,如果一个用户在系统a里面订购了一个a套餐,但是在系统b里面记录了他订购的是b套餐。这个时候系统a和系统b是同一个用户,信息就产生了差异。这可能是因为用户自己变更了套餐,也可能是系统没有及时的进行数据信息同步,最终导致了信息出现差异,这就是数据源引发的数据质量问题。
三、统计口径引发
1、统计口径引发的问题主要指KPI、报表等指标口径中存在的数据质量问题,包括指标准确性、一致性及完整性问题等。
2、此类问题产生的原因主要有以下情况:
⑴不同源系统或不同业务部门,对相同名称的指标定义和口径不同,造成最终的指标统计结果出现差异;
⑵业务部门在描述或定义指标口径时,存在许多不明确和不完善的地方,造成了指标口径的二义性。
举例1:中高端用户数
对于中高端用户数这个指标,可能对市场部来说,要求就是用户连续三个月消费都达到120元,就算是中高端用户。而可能对财务部来说,就要求连续三个月的月平均达到120元,就算是中高端用户数。
这就会有差异。
比如,这个用户第一个月消费110元,第二个月消费120元,第三个月消费130元。
按照市场部的要求,这个用户就不是中高端用户,因为他第一个月他没有达到120元;
而按照财务部的口径来算,他就算是一个中高端用户,因为他达到了月平均120元的水平。
举例2: 活跃用户
可能有的部业务部门就要求用户连续三个月有业务行为,而有的业务部门则定义,这个用户只要本月产生了业务行为,就算是一个活跃用户。这就是一种口径的差异。
举例3:新增用户
一个电商平台销售多种产品,需要统计一个指标:新增用户。这个新增用户对整个系统来说,一个用户只能算作是一次新增。而如果从各个产品维度来看,这个用户可能五月份买了产品a,六月份买了产品b。但五月份的时候,针对于产品a来说,他算是一个新增用户;六月份针对于产品b来说,他又算是另外一个新增用户。这就是一种指标口径的差异。
四、系统自身
系统自身的问题主要是指系统在开发建设、日常运营和维护过程中引发的数据质量问题,比如数据模型质量问题、系统升级数据信息丢失问题、ETL数据清洗不够彻底带来的问题以及数据仓库流程调度等问题,原因主要有:
1、数据仓库的建设过程中,由于缺乏规范化、体系化的建设思路,造成系统架构、数据模型、处理流程等不够优化和合理,从而带来数据质量问题;
2、在系统运营中,由于普遍缺乏完善的日常管理和维护流程,在处理、监控数据时,没有可以依据和规范的处理手段,导致操作出现失误或遗漏,造成数据质量问题。
比如,某个电商平台推广一个产品,有一个产品二维码手扫的活动,这里可以拆分成两个模块,比如手扫加抽奖。如果这个系统开发的不完善,这个两个模块之间关联交互的不是很好的话,就可能出现这种场景:一个人进行了手扫扫码,但暂时不允许抽奖。这可能是因为抽奖模块出了问题,而导致能扫,但不能抽奖,那这个用户可能暂时就只能退出这个应用了。然后在第二次扫的时候,可能就失去了抽奖的机会。因为第一次扫的时候,他已经把他的信息记录在那个扫码模块里面了。这就可能是因为系统自身定义不清楚到底哪种算手扫。
比如系统ETL清洗不彻底。
例如客户的性别,比如这个系统中的客户信息是从a,b,c三个源系统过来的。在a系统里面,客户性别可能是用0/1表示;在b系统里,客户性别可能用汉字的男/女表示;而在c系统里面,客户性别用英文men/women表示。
从abc源系统把客户信息全都统计过来之后,结果在这个分析系统的ETL清洗的过程中,可能只把汉字的男女清洗成了最终的标准化的0/1,但是英文的men/women没有做清洗,这样就会产生一种数据质量问题
还有一种就是比较普通的加工逻辑出错,导致数据质量出问题,这些都是系统自身导致的数据质量问题。