“先问是什么,再问怎么做”,有的放矢:什么是标靶,怎么做是箭弩。
保证数据质量之前首先要知道怎么判断数据质量的高低,或者说什么样的数据是高质量数据。
引用质量管理之父J.M.Juran的定义:
“如果根据这些数据做出的操作、决策和规划,符合之前的预期,那么这些数据就是高质量的” Data are of high quality if they are fit for their intended uses in operations, decision making and planning (J. M. Juran).
数据质量的评估标准主要包括五个方面:完整性、一致性、有效性、准确性、及时性。
完整性是指数据信息信息是否存在缺失的状况,常见二维数据表中行的缺失,字段的缺失,码值的缺失。不完整的数据是缺乏表达力的,缺乏表达力的表达是混淆视听的,借鉴的价值大打折扣或者无益的扭曲的。
一致性是指相同含义信息在多业务多场景是否具有一致性,一致性包括参照关系一致性,维度一致性,指标一致性。比如火车乘客的身份ID,中国公民身份证,数据存储类型都为字符类型。一致是表达的基础,也是达成共识的基础。
有效性一般指范围有效性、日期有效性、形式有效性等主要体现在数据记录的规范和数据是否符合逻辑。规范指的是,一项数据存在它特定的格式,如:手机号码一定是11位的数字;逻辑指的是,多项数据间存在着固定的逻辑关系,如:PV一定是大于等于UV的。
准确性是指数据记录的信息是否存在异常或错误。最为常见的数据准确性错误就如乱码。其次,异常的大或者小的数据也是不符合条件的数据。准确性可能存在于个别记录,也可能存在于整个数据集,例如数量级记录错误。这类错误则可以使用最大值和最小值的统计量去审核。
及时性是指数据从开始处理到可以查看的时间间隔。及时性对于数据分析本身要求并不高,但如果数据建立的时间过长,就无法及时进行数据分析,可能导致分析得出的结论失去了借鉴意义。比如:实时业务大盘数据,及时反映业务关键指标的情况,暴露业务指标的异常波动,机动响应特殊突发情况都需要数据的及时更新和产出。
弄清数据模式:字段名称、字段类型、字段释义、值的分布区间,以及字段出现NULL或者字段释义之外的码值的原因,与开发和业务沟通数据中的业务逻辑,表达的业务过程。
数据剖析是通过对当前以及产出的数据的数据分析、搜集该数据集的统计信息,来检验数据集的完整性、一致性、正确性等情况,是发现和分析数据质量最有效的途径。主要有以下几种方式:
1,列分析(Column Profiling)。是最常见的分析内容,主要包括:值域分析、基数分析、类型监测、数据分布、波动监测、异常值监测等。常见分析方法如下:
2,跨列分析(Cross-column Profiling):候选主键分析,功能性依赖分析(x列的值决定y列的值)等。常见下的分析方法如:唯一性检验、分组验证。
3,表级别的分析(Table Profiling):主键唯一性分析,表基础分析等。一般方法有:如数据类型、长度,唯一性,Null频率,字符串规律,值域监测,范围监测,缺省值检验。
4,跨表级别的分析(Cross-table Profiling):如, 外键分析,血缘分析等。方法如:关联完整性验证(join test)
5,预定义分析(Data Rule Validation):如,根据具体的业务场景,制定规则后进行验证分析。一般方法不固定,可以复用上面的相关方法。
千万级别以上的明细数据,很难用人工去一一发现,这就需要数据加工,多维模型是数据加工的经典理论,我们承认数据的加工是存在误差的,但是不能出现逻辑的无效统计。
1,数据的呈现基本符合两种趋势,一,自然数据一般符合正态分布:比如人的身高,人的寿命等;二,社会数据一般齐普夫定律:财富的分布,人口城市排名等。
2,通过维度组合分析,看数据值的占比是否是符合已有的正确的业务认知,与业务认知相互校验。
3,兼听则明,偏听则暗:与业务人员一起验收数据的产出,积极听取业务人员的意见与建议。
数据加工完成,通常会形成固定周期的产出或长期提供给下游业务使用。这就需要我们做好数据质量的监控:保证数据产出的及时性,控制数据的负面影响
1,通过使用系统去监控数据任务的产出时间,数据产出数据量的变化,关键维度的数据占比,来判断数据是否正常产出。
2,收集用户的反馈:提供一个反馈系统给数据真正的使用者,来反映数据在实际应用中,真实的质量问题是什么,通过这个系统,数量质量的管理者可以方便识别和追踪数据质量问题的进展情况。
3,监控下游业务的效果,反推上游的数据质量:比如推荐CTR大跌,我们可以很大概率推出上游推荐数据质量存在问题等。
数据质量不可能达到十全十美,但是我们要保证数据:完整性、一致性、有效性、准确性、及时性。
数据质量的把控不是一个点,它是一个系统的工作,需要从数据的接入,数据加工,数据的产出,数据的应用,应用效果的跟踪等全流程的把控;
全局观很重要,不拘一点,才能看的更全面。加油,数据质量工作任重道远。