市场研究公司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)开始的更多相关文章

  1. [转载] 第三篇:数据仓库系统的实现与使用(含OLAP重点讲解)

    阅读目录 前言 创建数据仓库 ETL:抽取.转换.加载 OLAP/BI工具 数据立方体(Data Cube) OLAP的架构模式 小结 回到顶部 前言 上一篇重点讲解了数据仓库建模,它是数据仓库开发中 ...

  2. 如何在HHDI中进行数据质量探查并获取数据剖析报告

    通过执行多种数据剖析规则,对目标表(或一段SQL语句)进行数据质量探查,从而得到其数据质量情况.目前支持以下几种数据剖析类型,分别是:数字值分析.值匹配检查.字符值分析.日期值分析.布尔值分析.重复值 ...

  3. 开源数据质量解决方案——Apache Griffin入门宝典

    提到格里芬-Griffin,大家想到更多的是篮球明星或者战队名,但在大数据领域Apache Griffin(以下简称Griffin)可是数据质量领域响当当的一哥.先说一句:Griffin是大数据质量监 ...

  4. 【转载】使用Pandas创建数据透视表

    使用Pandas创建数据透视表 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas创建数据透视表 目录 pandas.pivot_table() 创建简单的数据透视表 增加一个行维度(inde ...

  5. (转载)提高mysql插入数据的速度

    (转载)http://blog.csdn.net/bhq2010/article/details/7376352 需要在mysql中插入2000万条记录,用insert语句插入速度很有限,每秒钟几百条 ...

  6. TOP100summit:【分享实录-Microsoft】基于Kafka与Spark的实时大数据质量监控平台

    本篇文章内容来自2016年TOP100summit Microsoft资深产品经理邢国冬的案例分享.编辑:Cynthia 邢国冬(Tony Xing):Microsoft资深产品经理.负责微软应用与服 ...

  7. 时间序列大数据平台建设(Time Series Data,简称TSD)

    来源:https://blog.csdn.net/bluishglc/article/details/79277455 引言在大数据的生态系统里,时间序列数据(Time Series Data,简称T ...

  8. 数据质量、特征分析及一些MATLAB函数

    MATLAB数据分析工具箱 MATLAB工具箱主要含有的类别有: 数学类.统计与优化类.信号处理与通信类.控制系统设计与分析类.图像处理类.测试与测量类.计算金融类.计算生物类.并行计算类.数据库访问 ...

  9. 【转载】使用Pandas进行数据提取

    使用Pandas进行数据提取 本文转载自:蓝鲸的网站分析笔记 原文链接:使用python进行数据提取 目录 set_index() ix 按行提取信息 按列提取信息 按行与列提取信息 提取特定日期的信 ...

随机推荐

  1. 美了美了!22款精美的 iOS 应用程序图标模板

    22款制作精美的 iOS 应用程序图标设计作品,遵循图形设计的现代潮流,所有图标都非常了不起,给人惊喜.通过学习这些移动应用程序图标,设计人员可以提高他们的创作,使移动用户界面看起来更有趣和吸引人. ...

  2. LeetCode——Merge k Sorted Lists

    Discription: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its ...

  3. 将excel导入mysql(使用navicat)

    excel: 注: 1.mysql里建立一张跟excel一样的表结构的表(包含id) 2.excel最好没有任何格式,只是纯值,不然会出现导入不了的错误 ----------------------- ...

  4. SQL Server里简单参数化的痛苦

    在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的简单参数化(Simple Parameterization)的一些特性和副作用.首先 ...

  5. CentOS6.5菜鸟之旅:VIM插件NERDtree初探

    一.介绍 用于浏览目录结构的插件,功能和windows的资源管理器类似. 二.安装过程 1. 下载插件(https://github.com/scrooloose/nerdtree) 2. 将文件复制 ...

  6. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

  7. 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout

    [源码下载] 与众不同 windows phone (50) - 8.1 新增控件: PickerFlyout, ListPickerFlyout 作者:webabcd 介绍与众不同 windows ...

  8. The Towers of Hanoi Revisited---(多柱汉诺塔)

    Description You all must know the puzzle named "The Towers of Hanoi". The puzzle has three ...

  9. KM算法

    链接: http://blog.csdn.net/lvshubao1314/article/details/41702291 

  10. Tomcat配置文件server.xml

    Tomcat目录中的server.xml配置文件 server.xml称为主配置文件或全局配置文件 它完成以下两个目标: 1,提供Tomcat组件的初始化配置 2,说明Tomcat的结构和含义,使得T ...