ETL中数据清洗技术分析与研究

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第25卷第3期 

晋 中 学 院 学 报V ol.25 N o.32008年6月Journal of Jinzhong University Jun. 2008

[收稿日期]2008-01-14

[作者简介]彭秦晋(1979-),男,山西榆次人,晋中学院继续教育学院,助教.

ET L 中数据清洗技术分析与研究

彭秦晋

(晋中学院继续教育学院,山西晋中030600)

摘 要:数据质量是商业智能的基础,数据质量的好坏直接影响到商业智能的成败.数据

质量存在问题有多方面的原因,在此基础上提出了实施数据清洗的五个步骤,最后阐述了提高

数据质量的方法.

关键词:脏数据;数据源;清洗;异常检测

中图分类号:TP274 文献标识码:B 文章编号:1673-1808(2008)03-0101-03

数据仓库是面向主题的、集成的、不可更新且随时间不断变化的数据集合.它必须有正确和可以信任的数据去支持决策分析.一个数据仓库应该仅仅有一个正确的输出,那就是这个已经被数据仓库提供了充分证据的决策.但是,数据仓库中的数据可能来自不同的数据源,或者是一个ERP 应用,或者一个Excel 表,甚至是一个消息队列,这些都不在数据仓库团队所能控制的范围之内,这些数据中可能存在大量的“脏”数据.所以,在数据仓库中,为了保证数据质量,数据仓库工程通常开始于历史数据的读取,并要进行数据清洗和质量控制.ET L 指的是数据的抽取(Extract )、转换(T rans form )和装载(Load )的过程,是数据仓库的核心和灵魂,它能够按照统一的规划集成并提高数据的价值,并完成源数据向目标数据转换,是实施数据仓库的重要步骤.

1产生数据质量问题的原因分析

1.1数据源可能存在的问题

数据质量存在问题的根本原因在于数据源.由于数据仓库中的数据来自多种业务数据源,它们可能存储在不同的硬件平台上,而且使用不同的操作系统,使得从这些数据源中获取来的数据中不可避免地存在一些问题,所以保证数据质量是很困难的事.

1.1.1不完整和错误的数据数据仓库中的数据代表的应该是整个一系列数据,不应该有信息缺少的情况发生.如:一个公司的总支出应该包括工资项,假如没有,就必须给它重命名,再将这一类数据过滤出来,按缺失的内容分别写入不同的Excel 文件向用户提交,并且在规定时间补全后重新写入数据仓库.但是在实际情况中,由于业务系统不够健全,常常发生接受输入后不进行数据完整性分析,直接写入后台数据库的情况.数据输入过程中也常出现把数值数据输入成全角字符、日期格式不正确、日期越界等情况,这些都导致了错误数据的产生.

1.1.2数据一致性

数据源系统出于性能的考虑,会在一定程度上舍弃外键的约束,最终导致数据不一致.例如要表达性别,可以用“0”/“1”,也可以用“F ”/“M ”,从而出现代码不一致.

1.1.3超负荷代码

在很多系统特别是一些旧的系统中,在搭建时基于节省字节的考虑,常使用单个代码来代表多个目的.如:一个目录号可能指一个已经存在的客户的号码,也可能同时指将要卖给我们货物的卖方的号码.

101・

1.1.4重复的数据

数据质量问题中的一种常见的情况是现实实体可能由多个不完全相同的记录来表示,这样的记录被称做相似重复记录,姓名和地址域是这个问题的经典例子.如在交易系统中,由于它不需要收集商业分析所需要的数据,因此一个确切的客户姓名是不需要的,I.B.M和I BM被看作是同一个公司.检测和消除相似重复记录是数据清洗和提高数据质量要解决的主要问题之一.

1.2ET L过程中可能存在的问题

1.2.1规则描述错误

在ET L过程中,一方面由于设计人员对数据源系统理解的不充分,常导致规则理解错误;另一方面在规则的描述中也会存在二义性问题.规则是依附于目标字字段的,不能总用文字描述,必须有严格的数学表达方式.

1.2.2ET L开发错误

ET L开发过程中也会发生一些诸如逻辑错误、书写错误之类的错误.例如对于一个分段值来说,开区间和闭区间是需要指明的,但是开发人员常常没注意,一个大于等于号若写成大于号就会导致数据错误.

1.2.3人为处理错误

在整体ET L流程没有完成之前,为了省事,通常会手工运行ET L过程.而且,手工运行过程常按照自己的理解而不是正常的流程去进行,误删数据、重复装载数据这些错误不可避免.此外,现在很多业务系统的输入界面是用C OBO L语言或C语言开发的,其界面处理能力不是很强,一些要素被设计成“输入”而不是“选择”,输入的正确与否完全由操作员的理解决定.

2实施数据清洗,提高数据质量

数据质量的好坏是影响商业智能应用效果的关键,但由于企业的信息化是个长期积累和发展的过程,难免在其中存在一些脏数据,从而阻碍商业智能应用的进程.数据清洗(data cleaning)是一个减少错误和不一致性、解决对象识别的过程,它的任务是过滤掉那些不符合要求的数据,并将过滤结果交给业务主管部门,最终由主管部门确定是过滤掉,还是由业务单位修正之后再进行抽取.

2.1数据清洗方法分类

按数据清洗的实现方式和范围,通常将数据清洗分为四类:

(1)手工实现方式:用人工来检测所有的错误并改正.这只能针对小数据量的数据源.

(2)专门编写应用程序:通过编写应用程序检测、改正错误,缺点是清理程序复杂,系统工作量大.

(3)运用数据清洗工具:只限于某些特定领域.

(4)与特定领域无关的数据清洗:这一部分的应用非常有限,主要集中在重复记录的检测/删除.

2.2实施数据清洗的方法

2.2.1数据分析

用于探测哪一类型的错误,有必要进行一个细节性的分析.

2.2.2匹配和消除重复数据

匹配就是要在其他记录寻找相似的记录,发现重复异常.根据匹配的结果,对重复的记录可以删除,也可以把多个记录合并为一个具有更完整信息的记录,更好地描述它所指向的实体.

2.2.3验证

用于进行转换的工作流程的正确性和有效性的测试和评估.

2.2.4清洁数据的回流

当错误被消除后,应该用清洁数据替换源系统中的脏数据,这样可以避免在将来的数据解压过程中重做清洗工作.

2.2.5归档

在ET L系统中建立一张错误事件表,所有来自于ET L过程中的错误事件都会被写入到这张表中,可以通过运行此报告来确定数据质量问题的区域并跟踪它们.

1

2

相关文档
最新文档