【转载】改善数据质量从数据剖析(Data Profiling)开始
市场研究公司Forrester副总裁Erin Kinikin曾经把低劣的数据质量做了一个形象的比喻“用更好的方法访问劣质的数据,结果类似于把已经腐烂了的桃子用更快的卡车,走更好的路线运输到达市场时,桃子仍然是腐烂的。”质量低劣的数据带给我们的不仅仅是报表数据的错误,更危险的是它可能会导致决策的偏离。
随着数据质量问题渐渐被广泛地关注,我们为了降低和避免低劣的数据质量带来的影响和危害,通常在ETL(抽取、转换和加载)过程中增加了数据清洁的步骤,这样一来ETL就变成了ECTL(抽取、清洁、转换和加载),数据在被转换和加载到数据仓库之前,会被过滤、清洁和规则化,在很大程度上提高了数据仓库中的数据质量。
然而我们慢慢会发现,仅仅依靠ECTL对数据进行清洁是远远不够的。我们低估了“脏数据”表现形式的不确定性。“脏数据”之所以“脏”的原因有很多,例如:空值,字段值溢出,违反外键约束,重复记录,违反业务逻辑等。在最初设计ETL规则的时候,我们并不知晓哪个字段会有什么类型的脏数据,无法有针对性地在ETL过程中建立有效的数据清洁规则,而只能在ETL规则运行时遇到数据质量问题引发的错误后,才能去解决它。这样虽然在一定程度上提高了数据质量,但是这种“头疼医头,脚疼医脚”的方式永远是被动的,无法统筹和系统化地解决数据质量的问题。
面对脏数据突施的冷箭,与其被动地对应,不如主动地有所作为。面对错综复杂的数据源系统,在进行数据处理和ETL规则的设计之前,我们应该对数据有一个全面的,完整的认识——这就是数据剖析,即Data
Profiling。数据仓库大师Ralph
Kimball博士对数据剖析是这样定义的——对数据源内容系统化的预先的分析。他认为在做数据整合的时候,数据源系统能够提供什么质量等级的数据制约着下一步的ETL设计工作,全面了解系统中数据情况是提出合理完善的解决办法的前提。
数据剖析通常会包含如下几个内容:
1)列分析。列分析是对数据源表中的字段的值进行统计,比如:最大值,最小值,唯一值个数,NULL
值的比例,字段类型,长度,字段格式以及数值分布比例等。作为数据剖析的基础,我们通过列分析可以获得数据NULL值的情况,数值是否越界,数值格式是否规范等信息,这对于我们设计ETL中数据清洁规则是非常必要的。
2)连接分析。连接分析是对两个表之间的连接列和匹配程度进行分析。它能够显著提高ETL中的Lookup操作的匹配率和正确率。
3)键值分析。键值分析是分析和检查表的中某1列或多列是否符合唯一性约束。它对于数据仓库中数据模型的设计和ETL规则设计也是非常重要的。
通过数据剖析,我们能够深入了解数据的结构,数值的有效性,分布情况以及在多个分散系统之间关联等重要信息。而获取这些信息是我们变被动为主动地改善数据质量的第一步。当天空突然下起大雨,我们总会看到有的人被雨水淋得湿透,狼狈不堪,而有的人撑起雨伞从容应对。出门之前听天气预报,是生活中的常识。而在设计ETL规则之前先进行数据剖析,是我们实践的真谛。
连接:http://www.itpub.net/thread-1366729-1-1.html
【转载】改善数据质量从数据剖析(Data Profiling)开始的更多相关文章
- [转载] 第三篇:数据仓库系统的实现与使用(含OLAP重点讲解)
阅读目录 前言 创建数据仓库 ETL:抽取.转换.加载 OLAP/BI工具 数据立方体(Data Cube) OLAP的架构模式 小结 回到顶部 前言 上一篇重点讲解了数据仓库建模,它是数据仓库开发中 ...
- 如何在HHDI中进行数据质量探查并获取数据剖析报告
通过执行多种数据剖析规则,对目标表(或一段SQL语句)进行数据质量探查,从而得到其数据质量情况.目前支持以下几种数据剖析类型,分别是:数字值分析.值匹配检查.字符值分析.日期值分析.布尔值分析.重复值 ...
- 开源数据质量解决方案——Apache Griffin入门宝典
提到格里芬-Griffin,大家想到更多的是篮球明星或者战队名,但在大数据领域Apache Griffin(以下简称Griffin)可是数据质量领域响当当的一哥.先说一句:Griffin是大数据质量监 ...
- 【转载】使用Pandas创建数据透视表
使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...
- (转载)提高mysql插入数据的速度
(转载)http://blog.csdn.net/bhq2010/article/details/7376352 需要在mysql中插入2000万条记录,用insert语句插入速度很有限,每秒钟几百条 ...
- TOP100summit:【分享实录-Microsoft】基于Kafka与Spark的实时大数据质量监控平台
本篇文章内容来自2016年TOP100summit Microsoft资深产品经理邢国冬的案例分享.编辑:Cynthia 邢国冬(Tony Xing):Microsoft资深产品经理.负责微软应用与服 ...
- 时间序列大数据平台建设(Time Series Data,简称TSD)
来源:https://blog.csdn.net/bluishglc/article/details/79277455 引言在大数据的生态系统里,时间序列数据(Time Series Data,简称T ...
- 数据质量、特征分析及一些MATLAB函数
MATLAB数据分析工具箱 MATLAB工具箱主要含有的类别有: 数学类.统计与优化类.信号处理与通信类.控制系统设计与分析类.图像处理类.测试与测量类.计算金融类.计算生物类.并行计算类.数据库访问 ...
- 【转载】使用Pandas进行数据提取
使用Pandas进行数据提取 本文转载自:蓝鲸的网站分析笔记 原文链接:使用python进行数据提取 目录 set_index() ix 按行提取信息 按列提取信息 按行与列提取信息 提取特定日期的信 ...
随机推荐
- MyEclipse搭建SSM框架(Spring+MyBatis+SpringMVC)
待写. 参考网址 http://www.cnblogs.com/Joetao/articles/4544572.html http://www.cnblogs.com/verlen11/p/53497 ...
- 重构第23天 引用参数对象(Introduce Parameter Object)
理解:有时候我们的一个方法,需要很多个参数,太多参数,不易阅读和理解,我们就可以把多个参数封装成一个对象. 详解: 重构前代码: public class Registration { public ...
- 创建WCF服务自我寄宿
WCF服务的寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以寄宿在各种进程之中,常见的寄宿有: IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为 ...
- AC自动机---Searching the String
ZOJ 3228 题目网址:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=16401 Description Little ...
- mysql备份方法
在用PHP或者其他web脚本语言构架的应用系统中,数据库大部分是mysql其中就牵扯到了一个数据库日常备份导出等问题,大概有以下几种情况: 1.如果应用用的是开源的产品,如dz.pw和其他cms等一般 ...
- 【转载】delete table 和 truncate table 的区别
使用delete语句删除数据的一般语法格式: delete [from] {table_name.view_name} [where] 将XS表中的所有行数据删除 delete XS 执行完后,发现X ...
- C# on Visual Studio Code
installation Download .NET Core SDK installer and install it. https://www.microsoft.com/net/download ...
- Maven创建servlet项目演示(三)
上一节用Maven新建了web项目成功后,本文演示在此基础上应用servlet. 从对tomcat服务器进行配置可的过程中可以知道,tomcat作为servlet容器运行,负责处理客户请求,把请求传送 ...
- S2 易买网总结
易买网项目总结 --指导老师:原玉明 不知不觉,又到了S2结业的时间了,S1的项目KTV项目还历历在目.一路走来,感觉时间过的好快,我们离就业也越来越近... 展示: 1.主页面(首页) 01.商品分 ...
- Android启示录——开始Android旅途
为了明年可以开始进行android程序开发,开始从零开始学习android,仅以此代表第一步开始(*^_^*),开始搭建环境…… 1. 软件下载 http://developer.android.co ...