`

商业智能平台研究(九) ETL 中的数据质量控制

阅读更多
数据质量一直是ETL工具的一个高级特性,为了解释清楚这个问题,让我们看看oracle的商业ETL工具Oracle Warehouse Builder 在数据质量上是如何管理的

oracle在官方网站上有一篇专门介绍如何使用oracle warehouse builder的文章,地址为http://www.oracle.com/technology/pub/articles/rittman-owb.html?
rssid=rss_otn_articles?msgid=4931461 , 是mark rittman所写,rittman公司本身也是一个专业的oracle 数据仓库 和商业智能方面的顾问公司,在oracle 方面非常的有发言权,如果你对oracle和数据仓库,或者oracle商业智能有兴趣的话,可以看一下上面的这篇文章,本文所有图片引自上面的这篇文章。


ETL难以成功有以下几个难点:
1 . 数据仓库的数据来自于多个数据源,所以数据的一致性很难得到保证,很多情况下需要一种硬性的标准来决定数据的取舍问题.
2 . 数据格式问题,例如数据缺失,超出数据范围,无效数据格式等等。
3 . 出现错误之后没有正确的处理问题,导致数据的质量不断的下降。
4 . 数据一致性问题,处于数据库性能考虑,有时候可能会有意的去掉一些外间或者检查约束。
5 . 业务逻辑问题.由于数据库在最初设计时就不够严格和谨慎。

我们怎么判断数据的质量好坏的呢,一般用户拿原有系统的显示方式查看某一查询条件的数据与用商业智能报表所产生出来的数据进行对比,看有多大的出入,这个可能需要原先系统有足够的能力显示这些数据并且商业智能工具的报表有足够强大的查询和报表展示能力,或者是用商业智能的报表与OLAP运行出来的报表进行对比,看有多大的出入,出入一般都是会存在的,因为数据不可能完全的准确,但是一定要搞清楚哪里数据出现了问题,并且尽量不要让这些误差扩大到用户无法接受的地步,否则就认为BI失败了。(咋同是一个工具做出来的,数据的出入就这么大呢?)



oracle warehouse builder 提供三个特性来使ETL的过程简单
1 . Graphical Data Profiler 可以查看数据的结构,语义,内容,异常,和大纲,数据规则 , 这就是在前一篇说的,kettle的数据管理没有oracle warehouse builder 强大的特性.kettle也提供查看表结构,column的结构,但是它不会判断一个column是不是主键或外键,一个字符串的最小长度是多少,最大长度是多少,一个整数的长度是多少,一个double的精度是多少。
2 . Correction Wizard 把数据规则应用到你的ETL过程中,自动映射并更正,清理,转化数据, 相当于oracle warehouse builder 提供一些默认的值来帮助你更快的创建映射规则,这个功能也比kettle强大。
3 . Data Auditor 获取数据规则并监控数据转换的过程。kettle也提供数据监控的机制,并把log记入下来,并告诉你重复的记录数,读写多少条记录,更新拒绝多少条记录,时间,速度,步骤是否成功等信息.

oracle warehouse builder 提供查看选中表的结构信息和数据信息




数据归档编辑器有很多面板。这些面板显示已归档的对象和归档的结果。为了方便解释,可以将整个面板分成6个部分,分别是左上角的面板(有两个tab)叫做1号面板,左边中间的property面板,叫做2号面板,左下角的monitor面板,叫做3号面板,右上角的Profile Results Canvas 面板(有10个tab),叫4号面板,右边中间的Data Grid Panal ,叫5号面板,右下角的Data Rule Panal ,叫6号面板。
1号面板显示已归档的表、视图、物化视图(oracle 10g新加的特性)、外部表、维度和事实等对象以及已经创建的任何更正模块的详细信息。
2号面板显示与数据归档关联的属性的列表。使用该属性列表,您可以优化数据归档的参数;启用或禁用某些数据归档组件并启用选定表的数据规则归档。
3号面板是监视器面板。该面板显示已提交的所有归档作业的进度。数据归档需要时间,所以可以在后台完成的作业,同时执行其他 Oracle Warehouse Builder 任务;当作业完成时,Oracle Warehouse Builder 会发出通知,kettle 在执行监控上提供的信息比oracle warehouse builder 多一些,包括速度和时间,还可以看到你启动多少线程组和线程,线程进行到那一步都显示的出来。
4号面板提供最多的信息,所以分成了10格tab,包含大量归档结果汇总的tab,
5号面板显示数据的统计信息,某一个column出现的值,出现的次数,占的百分比,有了这个功能,如果出现了错误的数据,将可以更容易的看到和清除.
6号面板显示数据规则.










其中4号面板有10个tab,其中有几个tab非常有用.(看上面的图)
Data Type tab详细说明表中每列的列名,数据格式,主要的数据类型,主要的数据类型所占的百分比,数据的长度,最大值和最小值,主要的长度,主要的长度所占的百分比,类型的精度。其中所谓的主要长度类型在Date那一列为40%,可见有些值为空,它不光列出最小值和最大值,而且还有主要值的长度和它所占百分比,统计方面功能比较强大,这种初步的数据统计不知道算不算接近于OLAP分析,功能上比kettle强大些.

Unique Key tab显示检测到唯一键或主键的所有列。该选项卡还显示唯一值的数量多得足以建议删除或更正非唯一行时可以定义唯一键的列。你可以看到图中有Six Sigma 列。这是一个 1 到 7 之间的数字,它指明“每千个的缺陷”数量,即对象中未能通过唯一约束的行。

Profile Object tab 相当于kettle中的 sql 编辑器 ,显示所有的数据并加上查询条件。

Domain tab 为归档对象的每列显示建议的域,以及数据与该域的一致程度。域就是列的一组允许的值,Oracle Warehouse Builder 认为出现两次或以上值的列就叫域。从图上看到,PACK_COUNT , PROD_ID , PROD_NAME 都是唯一性比较高的列,所以没有domain,这个面板同样也有 Six Sigma 值。



创建数据转化规则
在它给出的例子中,MANUF_COUNTRY的国家列包含Not Known , Canada ,USA , UK 和 Mexico ,它想把所有的England转化为 UK , 在Product 表中,把所有REORDER_YN为 'N' 的记录删掉,并使MARKET_SEGMENT 表的所有值为 ' Economy ' 或 ' Executive ' .

当你完成了数据规则的建立后,在实际转换的过程中,有可能出现你没有考虑到的情况,oracle warehouse builder 提出了三种操作,
Igore 这个不用解释吧.
Report 在一个新建的ERR$$$表中记录下这条记录。数据继续转化。
Cleanse 应用转化规则来清理数据.


如果没有什么特殊的原因,一般最好不要使用第一种策略,你即不知道有没有数据处错了,也不知道有多少数据出错了,这样很容易让你的数据误差越来越大,第二种Report策略能让我们知道那些数据出错了,并记录下来,当我们需要找到数据误差原因的时候,或者我们需要更正这些数据误差的时候有依据。当然如果我们真正的清楚数据转换规则的话,第三种策略是最好的,把这种误差消失在ETL的过程之中.

其中对于应用了数据转化规则的列,oracle warehouse builder 又提供四种策略来使数据达到我们想要的程度,

1 . Remove ,把我们认为满足特定数据条件的数据删除,例子中就是要把REORDER_YN = Y 的数据删掉。
2 . Similarity Match 把不在我们规定的域内的数据自动更改为最接近的值,这个值是oracle 用特定算法算出来的,我不清楚到底是怎么样的规则。不过我猜是不是按照字典的顺序来排序,谁接近就转化成谁,比如有applet,book ,orange ,如果要转化book的话,就把book转化为applet,因为b 开头的单词比o 开头的单词离的近一些,中文的话可能不会支持吧。当然,这只是我猜的.具体是怎么样只有问那些高手了.
3 . Soundex Match oracle有一个函数叫做SOUNDEX , 它是应用以下规则,保留首字母,把所有的元音 a , e , i , o , u 和 w , y 删掉。把剩下的字符串按如下数字相加
b , f , p ,v =1
c, g, j, k, q, s, x, z = 2
d, t = 3
l = 4
m, n = 5
r = 6
如果两个或两个以上有相同的数字接近原来的值(在第一步之前),或者接近除去h 和 w 的值 , 忽略掉除第一个字母以外的数字. 返回4个字节。格式大概如下:
SELECT name, SOUNDEX(namecol) FROM test;
SELECT * FROM test WHERE SOUNDEX(namecol) = SOUNDEX('SMITH');
以上例子摘自http://www.psoug.org/reference/string_func.html,如果你对算法有疑问可以自己去看看。

4 . Custom 使用自定义的转化规则来清理数据,大多数时候都是使用这种方式。例子中的把MANUF_COUNTRY 的 England 转化为 UK 就是这种情况。


在你进行数据转化之后,你对数据的质量满意了,你可以设置Data Auditor 来监控以后传入的数据的质量



Data Auditor 使用定义的数据规则,生成关于数据的一致程度的统计报告,然后将其存储在错误记录表中。还可以对 Data Auditor 进行编程,指定 Data Auditor 在分数低于一定的阈值后向您发出通知,然后在特定情况运行清理映射来清理数据。运行该清理映射后,可以对 Data Auditor 进行编程,使其仅在设计分数高于特定级别或 Six Sigma 值时才继续进行余下的 ETL 过程,避免将错误数据载入数据仓库,使数据仓库的质量能够得到保证。

ETL是非常重要的一步,往往一个项目的成败就是看ETL过程的成功与否.选用一个好的ETL工具会让项目更加的有信心.

下一篇介绍ETL的各种工具.
分享到:
评论
1 楼 java-007 2008-11-11  
Thank you, the landlord, a good thing!

相关推荐

    大数据分析技术教程 BI商业智能分析培训 久其ETL数据集成工具培训 ETL培训教程资料 第1节 基础概念 共18页.pptx

    【大数据分析技术教程 BI商业智能分析培训 久其ETL数据集成工具培训 ETL培训教程资料 第1节 基础概念 共18页.pptx】 在大数据分析领域,ETL(Extraction, Transformation, Loading)是数据仓库和商业智能(BI)系统...

    数据仓库与数据挖掘技术ETL技术PPT学习教案.pptx

    在ETL过程中,数据质量控制是一个非常重要的方面,ETL过程数据质量控制的目的就是确保数据的正确性、完整性和一致性,使得数据仓库中的数据能够满足商业智能系统的需求。 ETL并行处理技术是提高ETL过程效率的重要...

    ETL流程数据流图及ETL过程解决方案PPT学习教案.pptx

    * 数据质量控制 * 异常情况处理 ETL解决方案的选择需要根据具体情况进行选择,例如选择异构模式还是同构模式,选择何种ETL工具等。 ETL解决方案的优点: * 可以将业务操作数据转换为数据仓库中的决策支持型数据。...

    大数据之商业智能.ppt

    【数据质量控制】和【数据挖掘】是商业智能中的关键技术。数据质量控制确保了数据的准确性和完整性,而数据挖掘则通过发现数据之间的隐藏模式,为企业提供预测性洞察。例如,通过客户流失的测算、信用分析和欺诈分析...

    BI商业智能介绍 大数据与商业智能 BI商业智能介绍PPT 共23页.ppt

    BI 的技术架构包括数据仓库、ETL/DQ 解决方案、数据展现、数据管理、数据获取、数据迁移、数据质量控制等几个部分。BI 的安全性包括数据安全、分析管理、企业商务智能体系架构规划等几个方面。 BI 的应用在电信、...

    ETL课程全部笔记.pdf

    综合来看,ETL技术作为数据仓库和数据集成的核心组成部分,为商业智能(BI)提供了数据基础,其发展和完善对于企业数据管理和分析能力的提升具有重要意义。在不断变化的业务和技术环境中,ETL工具需要不断创新,以...

    SQL Server 2005数据挖掘与商业智能完全解决方案word版

    SQL Server 2005是微软推出的一款强大的数据库管理系统,其在商业智能(BI)领域具有显著优势,尤其在数据挖掘和商业智能解决方案方面。本资料集全面涵盖了SQL Server 2005在这些领域的应用,旨在为用户提供一套完整...

    数据分析平台(商业智能BI)解决方案.doc

    - 数据分析:建立数据仓库,进行ETL(抽取、转换、加载)处理,确保数据质量。 - 设计运行:采用微服务架构,确保系统的可扩展性和高可用性。 - 系统管理:提供权限控制、审计日志等,保障数据安全。 - 可视化展示:...

    商业智能技术详解

    商业智能的过程通常涉及数据抽取(ETL)——从各种数据源中提取数据,转换数据以符合仓库结构,并加载到数据仓库中。这个过程确保数据质量和一致性。然后,使用查询和分析工具、数据挖掘工具以及OLAP工具对数据进行...

    工作量最大的ETL设计蓝图.doc

    ETL(Extract-Transform-Load)是数据仓库和商业智能(BI)项目的关键组成部分,它涉及从各种数据源中抽取数据、转换数据以满足特定需求,以及将清洗后的数据加载到目标系统,如数据仓库中。这个过程确保了数据的...

    etl的考虑etl的考虑

    - **转换为核心**:ETL的核心在于转换(Transform),即数据格式的变化、数据质量的提升以及业务逻辑的应用。而抽取(Extract)与加载(Load)更多作为转换过程的输入与输出。 - **批量操作特性**:与在线事务处理...

    商业智能BI智能分析平台建设方案.zip

    2. 数据治理:制定数据质量标准,确保数据的完整性和一致性。 3. 平台搭建:选择合适的技术栈,构建数据处理和分析环境。 4. 应用开发:根据业务需求设计报表和分析功能。 5. 用户培训:教育用户如何使用BI系统,...

    SQL Server 2008 商业智能完美解决方案(3)

    无论是商业智能(BI)编程新手还是经验丰富的老手,都可从《SQL Server 2008商业智能完美解决方案》中获益。 目录 -------------------------------------------------------------------------------- 第一...

    商业智能产品.docx

    元数据的收集、存储和分析能确保数据质量,通过数据稽核和问题治理,实现对数据质量的有效控制。 整体而言,企业数据仓库通过构建统一的数据架构,解决数据分散、重复和共享难题,提高信息利用率,进而提升企业投资...

    企业大数据应用平台ETL系统运维实施技术方案(1).docx

    企业大数据应用平台ETL系统运维实施技术方案 ...企业大数据应用平台ETL系统运维实施技术方案涵盖了ETL系统的日常维护、故障响应、服务支撑体系、质量控制能力、应急预案等方面,是确保ETL系统稳定运行的重要保障。

    商业智能_BI_项目实训系列

    - **ETL数据整合**:以Informatica为例,讲解数据集成解决方案,包括PowerCenter和数据质量管理、Informatica PowerCenter体系架构、Repository Server和Informatica Server管理、客户端工具使用等,使学员掌握高效...

Global site tag (gtag.js) - Google Analytics