市场研究公司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. 3 Servlet监听器

    作者:禅楼望月(http://www.cnblogs.com/yaoyinglong) 1. ServletConfig和ServletContext 1.1 ServletConfig和Servle ...

  2. 在ubuntu下创建wifi供移动端使用

    转自:http://jingyan.baidu.com/album/ea24bc39b03fc6da62b331f0.html?picindex=8 完全正确是流程 另外 还需要本机能够连上内网的vp ...

  3. 使用DirectWrite测量Direct2D文字大小

    转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 最近在使用Direct2D和DirectWrite写引擎,在引擎中需要实现文本标签控件.但是文本标签的尺寸最好不 ...

  4. 价值100W的经验分享: 基于JSPatch的iOS应用线上Bug的即时修复方案,附源码.

    限于iOS AppStore的审核机制,一些新的功能的添加或者bug的修复,想做些节日专属的活动等,几乎都是不太可能的.从已有的经验来看,也是有了一些比较常用的解决方案.本文先是会简单说明对比大部分方 ...

  5. sprint3冲刺总结

    维持了一个多月的sprint3次总结终于结束了,我们小组也顺利的完成了我们的项目,总的来说这次完成的项目还是有一定的质量的,无论是外貌形象包装还是功能来说都达到了我们当初所设定的目标,美中不足的就是时 ...

  6. ADO.NET学习系列(二)

    这次我使用ADO.NET来插入一条数据,到数据库中.主用到存储过程.我不想每次都是用SQL文本的形式了,那样始终没有进步--- 下面首先,我把我这次练习要用到的数据库脚本,贴出来: USE maste ...

  7. 计数排序 + 线段树优化 --- Codeforces 558E : A Simple Task

    E. A Simple Task Problem's Link: http://codeforces.com/problemset/problem/558/E Mean: 给定一个字符串,有q次操作, ...

  8. ASP.NET中使用DropDownList实现无刷新二级联动详细过程

    Demo.sql create table Car( [id] int identity, ) not null, ) not null ) go insert into Car ([brand],[ ...

  9. Identity标识列

    SQL Server中,经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便.但它有时还会带来一些麻烦. 示例一 :当表中被删除了某些数据的时候,自增长列的编号就不再是一个连线的数 ...

  10. 用javascript去掉字符串空格的办法

    今天遇到了以关于JavaScript 中怎么去掉 字符串中前后两段的空格 ,我只好向就得js中也后Trim() 函数,后来试试了不 行,就网上找了下解决方法,其中用到了正则表达式 ,整理了下: < ...