开篇:润墨网以专业的文秘视角,为您筛选了一篇数据仓库建设中数据处理技术的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:数据仓库建设是一项巨大的工程,数据处理又是其中至关重要的一个环节。本文从数据处理过程中数据收集、数据清洗、数据转换和数据质量评估几方面说明数据处理过程中常出现的问题及其解决方法。系统已在银行业务中予以实现。
关键词:数据仓库;数据处理;数据清洗和转换
中图分类号:TP399文献标识码:B文章编号:1009-3044(2008)36-2566-02
The Technology Research on Data Processing in Data Warehouse Developing
YU Xiao-ping, LIU Li-ya, XIAO Jing
(Collage of Computer Science and Technology, Shihezi University, Shihezi 832003, China)
Abstract: Building a data warehouse is a huge project and data processing is a important step in it. The article interpret the occurred problems and its resolve methods from some aspects such as data collection、data cleaning、data transformation and data quality check in data processing. The system has been realized in bank business.
Key words: data warehouse; data processing; data cleaning and transformation
1 引言
在当今快节奏的、以信息为基础的经济社会中,企业必须整合大量不同的异构数据源来支持其战略决策,比如商业智能或企业绩效管理。总体数据管理、数据仓库和数据集市是实施这种战略的基础。建立一个企业级的数据仓库(data warehouse)是一项巨大的工程,其中数据处理又占据其中50%-70%的工作量。数据处理包含很多方面:一是从多种数据源综合数据仓库所需要的数据,保证数据的综合性、易用性、数据的质量和数据的时效性;另一方面就是如何从现有数据中衍生出所需要的指标。
数据的抽取(Extract)、转换(Transform)和加载(Load)即ETL实施是数据处理的主要手段。ETL功能改造了源系统中的相关数据,将它们变成有用的信息存储在数据仓库中,是提供数据仓库信息内容的前期工作。如果没有对源数据进行正确的抽取、清洗和用正确的格式进行整合,作为数据仓库中枢功能的查询处理,就不能进行。
2 数据仓库概述
2.1 数据仓库的基本概念
数据仓库(data warehouse)经过数十年的发展,人们对它的认识也逐步深入。数据仓库的创始人W.H.Inmon给数据仓库的定义是:数据仓库是一个面向主题的、集成的、非易失的,随时间变化的用来支持管理人员决策的数据集合。从数据仓库的功能角度来看,将其定义为:数据仓库是指企业中可查询的数据源;数据仓库是一种信息环境。根据数据仓库的应用,数据仓库可以分为:
数据仓库将分散的日常操作数据加工处理、集成、综合后,形成归纳总结数据乃至专业分析数据,从而成为历史性详细数据。
2.2 数据仓库建设中的关键问题
数据仓库的结构如图1所示。
数据仓库从多种数据源中提取数据,经过数据抽取、清洗、转换等过程加载到数据仓库系统中输出供企业中各种不同层次的人员使用:普通用户,使用查询和报表功能;高级用户,使用多维展现的在线分析功能( OLAP);专家级用户,使用数据挖掘功能做决策分析。
数据仓库中的数据源来自于多个数据库子系统。这些数据库子系统是面向不同应用建立的,彼此独立。由于各种原因如数据输入错误、不同来源数据引起的不同表示方法、数据间的不一致、数据的不完整、NULL值等导致数据仓库中的数据不可避免地在数据的名称、类型、描述、关联、取值等方面出现问题,从而扭曲其获得的信息,影响信息系统的运行效果,也为企业建立数据仓库、建立决策支持系统、应用商务智能化带来隐患。因此数据处理就成为数据仓库建设中的关键。
3 数据处理的步骤
3.1 数据获取
根据数据仓库的主题确定哪些关联数据源是分析的对象,这些数据源不仅包含企业中业务数据库系统中的数据,还包括来自企业外部的数据,比如同业其他单位的信息、监管部门的信息、统计数据等。把这些数据源按照业务处理系统、业务管理系统、外部资源等等分类,同时也按照数据仓库的主题进行分类,确定外部数据的实体、关系和属性,形成数据采集文档,构成数据仓库系统的原始数据集。
3.2 数据清洗
图1数据仓库的体系结构
3.2.1 数据清洗原因
数据清洗主要是针对系统的各个环节可能出现的数据二义性、重复、不完整、违反业务规则等问题,通过试抽取,将有问题的记录先剔除出来,根据实际情况调整相应的清洗操作。主要问题如下
1)数据不完整:需提取字段的属性缺值,或者只含有不可用的聚合数值;
2)数据不一致:字段编码或名称不一致,比如,定期存款表、活期存款表、内部账、贷款表中对账户状态的定义各不相同,数据汇总的时候就会出错;再比如,age=‘42’,而birthday = 03/07/1997;
3)数据冗余:所谓冗余信息,就是指不同关系表中存在的同一含义的字段,而同一含义不仅指这些字段的取得或计算方式一样,还指它们成立的条件一样,例如截止某一时间同一地区的同一贷种的贷款余额。在OLTP系统中,这样的字段往往是基于性能考虑而设计的,而在面向分析设计模型时,为了保证结果的唯一性和准确性,就必须用且只用其中之一的数据产生分析结果;
4)其他错误:比如2005/05/09销户的账户,2005/05/15居然又发生一笔交易,2005/04/30日的数据记录中有2005/05开户的数据记录,这种错误会给数据统计带来麻烦。
3.2.2数据清洗原则
1)不完整数据清洗:首先检测出数据源中的不完整数据(主要是看数据仓库开发中感兴趣的字段值是否丢失或为缺省值),然后判断数据的可用性,根据一条记录的不完整程度和其他因素来决定这条记录是保留还是删除。最后推断丢失属性的值,人工补上或用自动的方法用常量或平均值或最可能的值补上;
2)改正不一致的数据,统一不同数据源或不同数据库表中的同一个实体;
3)由于多个数据源的整合而产生的冗余数据可以在数据转换阶段解决;
4)出现在数据仓库维中的字段以维表属性为依据清洗。
3.3 数据转换
数据转换包括数据格式转换、数据类型转换、数据汇总计算、数据拼接等等,也是保证数据准确性的重要一环。
3.3.1 数据转换的原则
1)建立源数据和目标数据的映射关系;
2)建立数据提取规则参数表,确定提取的源表;
3)制定数据抽取的方式:全量数据抽取还是增量数据抽取;
3.3.2 数据转换注意事项
1)数据仓库系统中各字段最好重新命名,体现数据的一致性。比如日期问题,不同的含义就要起不同的名称,如状态变动日期、余额变动日期等;
2)数据转换过程本质上就是数据映射过程。正确的取数建立在对业务数据库系统设计的准确理解及对企业业务的清晰了解基础上。
比如数据仓库中有“贷款余额”字段,贷款业务数据库中“贷款本金信息表”,“本金异动表”和“放款主表”中都有“贷款余额”字段,究竟从哪个表中取值?如果这几张表中这个字段的含义是相同的,那么取哪个都不会出错。实际情况中往往是不同的。“贷款本金信息表”是每账户一笔纪录,只保存最新的余额值;“本金异动表”是每账户每变动日期每变动时间一条记录,保留变动的历史轨迹;“放款主表”中也是每账户一条记录,但是信息很多,数据量巨大,扫描一遍的时间长。究竟从哪个表中取数要看数据仓库设计中此字段的具体含义;
另外,若某个字段值可以从业务系统的多个数据库表中提取,那么提取的规则是看这几张表中哪个表的数据记录是最完备的就从中提取。比如存款业务的主档表包含所有的存款账户,而明细档表只包含发生交易的账户,也许有账户长期以来就没有交易,统计账户数量或者账户余额时从主档表中取出的数据才是齐全的。操作时可以根据业务源系统的类别及数据库表之间的关系选定一个取数的优先级。
总之,当数据仓库中同一表中的数据来自于源系统中不同的表,甚至不同的库时,抽取时务必保证这些数据单位一致,而且都满足同一时间条件。
3)数据仓库中有些字段的值是由源系统综合后得到的。比如:定期存款科目 = 存款种类+存期;贷款科目=贷款种类+账户状态等;
4)数据量不大就采用全量数据抽取方式以简化数据处理过程。否则就采用增量数据抽取方式。
数据转换成功执行的前提条件是对操作型业务数据库系统的充分理解。
3.4 数据质量评估
1)数据量评估:确定数据量,包括历史数据和增量数据的数据量;
2)数据完整性评估:验证数据库实体的每个属性都有明确的值,不存在“空”或“未知”的属性;
3)数据准确性评估:数据库中的实体应和现实世界中的实体一致,找出造成差异的原因和设计改进的方法,使数据的准确性达到允许的范围之内;
4)数据有效性评估:根据业务系统中规则,评估系统中非法数据的数量和情况,并设计改进的方法;
以上对数据的评估需要在数据源和数据仓库两方面进行并写出数据源评估的报告和数据仓库数据评估的报告。各个阶段形成的文档资料构成数据仓库元数据的一部分。
4 结束语
结合实际项目,总结概括了数据仓库建设中数据处理的几个方面。对企业的信息化建设具有积极的指导意义。
参考文献:
[1] Kimball R.数据仓库工具箱:维度建模的完全指南[M].2版.北京:电子工业出版社,2003.
[2] Inmon W H.数据仓库[M].北京:机械工业出版社,2003.
[3] Fan W G, Lu H J, Stuart E, et al. Discovering and reconciling value conflicts for numerical data integration[J]. Information Systems,2001(26):635-656.
[4] 杨俊生.数据驱动方式下的数据源分析[J].中国金融电脑,2004,(5):41-43.
[5] 陈伟,丁秋林.数据清理中不完整数据的清理方法[J].微型机与应用,2005(2):44-45.
[6] 余晓平,瓮正科.银行数据仓库的系统设计与实现[J].微计算机信息,2006,22(10-3):153-155.