在【rainbowzhou 面试15/101】技术提问--数据质量管理的流程有哪些?中,我讲述数据质量管理的四个阶段。今天详细说说其中的第三阶段--如何进行数据质量分析,希望对大家有所帮助。
在该系列的上一篇文章中,我与大家讲述了可以用表和字段作为基准,进行分析的4个维度以及采用的相应的方法,接下来为大家讲解下常用的字段级别和标级别的分析方法。
字段级别分析
关于字段级别的分析,主要的方法有缺失值分析、异常值分析、值域分析、数据分布分析和字段内容分析等,下面分别进行说明。
缺失值分析
数据缺失主要包括记录的缺失和记录中某个字段信息的缺失。记录的缺失对应表级别分析,某个字段信息的缺失对应字段级别的分析。在此主要介绍后者。通常简单的计数统计即可得出记录中某个字段信息的缺失数量和缺失率。缺失值的分析方法适用于所有字段类型,但对于缺失值的处理方法,则需要慎重选择。常见的处理方法如下:
- 不处理:当缺失记录较少,可忽略不计时,可以不处理
- 删除法:删除字段或删除记录。在实际业务场景中,我们一般很少删除数据。对于是否删除数据,需看业务要求
- 填充法:可采用自定义填充法、推断填充法、数值统计填充法和建模填充法。eg:自定义填充,可填充“unknown”,“未知”等;推断填充,可根据身份证号推断出出生日期和年龄等;数值统计填充,可填充均值、中位数或众数等;建模填充,则是通过回归、贝叶斯等算法建立模型来预测填充。
异常值分析
异常值分析主要针对字段中的异常数据进行分析。常见的异常数据包括空字符、NULL值、被截断的字符串、乱码和其他录入错误的值。针对字符类字段的统计分析方法,常见的有正则匹配法、长度统计法等。
方法类型 | 使用场景 |
---|---|
正则匹配法 | 检测乱码和其他不符合预期的数值 |
长度统计法 | 检测字符串截断问题 |
异常值产生的原因复杂,因此大部分异常值很难被修复。故可以对异常值数据进行溯源,从根本上规避;或采用代码来兼容异常数据的处理方式。
值域分析
值域分析主要是分析字段值的统计指标。eg:针对数值型的统计指标有最大值、最小值、中位数、均值、极差值和方差等。针对字符类的统计指标有最大长度、最小长度和长度方差等。(加粗的为常见指标)
数据分布分析
数据分布分析主要是分析各个维度值在总体数据中的分布情况。数据分布分析过程中出现的典型的数据质量问题有数据分布偏斜程度较大、数据分布过分集中等。
字段内容分析
字段内容分析是分析字段真实记录值与预期数据是否一致。eg:定义的字段类型为string,但预期的数据是数值字符串(如“0”,“1”,“999”)。在这种情况下存成了“a”或“abc”就是不符预期的。
表级别分析
主键唯一性检测方法可参考如下SQL语句。
代码语言:javascript复制-- 单一主键,字段a为主键,若num1=num2,则主键唯一
select count(a) from table1; --num1
select count(Distinct a)from table1; --num2
-- 复合主键,字段b和字段c为主键,若num3=num4,则主键唯一
select count(concat(b,c)) from table2; --num3
select count(distinct concat(b,c)) from table2; --num4
以上是对字段级别分析方法和表级别唯一性方法的补充。
参考资源:
- 大数据测试技术与实践
看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信我,一起探讨交流。