摘要:随着信息的日益丰富,知识爆炸成为必然,从数据中发现知识(KDD)和数据挖掘已成为重要的技术。在广泛实施了ERP后,如何从海量的业务信息中找到有价值的知识已成为企业经营成败的关键,在这种背景下,将数据迁移到数据仓库变得非常重要。数据仓库的建设是一个复杂、长期的过程,特别是针对企业ERP系统的建设。我们通过一个汽修行业进销存系统数据仓库的构建,系统阐述了如何在ERP环境中构建数据仓库,并对系统的物理实施进行了论述。
关键词:信息;ERP;数据仓库;OLTP;OLAP;数据挖掘
当今社会是一个信息爆炸的时代,信息丰富而知识贫乏的现象非常普遍。“啤酒搭着尿布卖”的故事曾经触动了多少人的神经。信息作为现代企业的宝贵资源,占据着越来越重要的地位,已经成为现代企业科学管理的基础,正确决策的前提,有效调控的手段。
目前,面对激烈的市场竞争,许多大型企业纷纷实施“以客户为中心,以服务求发展”的经营策略。 如何优化客户关系,增强企业的竞争优势已经成为现代企业关注的焦点。现有的应用系统往往以“产品”为中心,以“单据(票证)”处理为基础,是面向联机事务处理(Online Transaction Processing,简称OLTP)的系统,而以客户为中心的经营管理模式要求对现有业务系统的数据进行有效的集成并加以重组,建立面向联机分析处理(Online Analysis Processing,简称OLAP)的系统。通过分析客户的行为,掌握不同类型客户的特征,进而为客户提供更加优质的服务,尤其是个性化的服务,同时全面掌握并理解、分析企业业务的发生情况,充分发挥企业现已积累的数据,为各级管理人员提供科学化管理和决策的有力依据,以提高企业的经营业绩,保证利润的持续增长。
同时,随着企业信息化程度的不断提高,各类应用系统同时并存并支撑着企业的业务应用。越来越多企业的信息化主管在开发企业应用时已经考虑到数据集成和将来对数据的整体有效利用,因此,在实施了ERP解决方案之后,很多企业选择实施数据仓库产品来避免信息孤岛,实现应用的内部联系和信息的共享。
什么是数据仓库呢?一般认为,数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。
面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。
集成的:数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
相对稳定的:数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
反映历史变化:数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
一个典型的企业数据仓库系统通常包含数据源、数据存储与管理、OLAP服务器以及前端工具与应用四个部分。
数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。
数据的存储与管理:是整个数据仓库系统的核心。在现有各业务系统的基础上,对数据进行抽取、清理,并有效集成,按照主题进行重新组织,最终确定数据仓库的物理存储结构,同时组织存储数据仓库元数据(具体包括数据仓库的数据字典、记录系统定义、数据转换规则、数据加载频率以及业务规则等信息)。
OLAP服务器:对分析需要的数据按照多维数据模型进行再次重组,以支持用户多角度、多层次的分析,发现数据趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。
前端工具与应用:前端工具主要包括各种数据分析工具、报表工具、查询工具、数据挖掘工具以及各种基于数据仓库或数据集市开发的应用。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具既针对数据仓库,同时也针对OLAP服务器。
在传统的ERP系统中,一般的核心应用都是进销存管理和账务管理,数据库中的数据也是紧紧围绕产品信息、票据和账目明细进行的。这样的数据层可以很好地实现OLTP,但如果要为企业高层提供决策数据的话,就有必要对这样原始的、松散的、孤立的数据进行抽取、清洗、加上时间标记并进行合理的分类,以使之能够进入数据仓库并支持OLAP。
下面通过一个小型汽修行业进销存系统(以下简称A系统)数据仓库的建立,来说明ERP系统数据仓库建立的步骤及应注意的一些问题。
A系统原有的数据层是典型的数据库系统,核心表为产品信息表、客户信息表、供应商信息表、库存表、销售表、客户明细表和供应商明细表等。这些表格在运行中很好地解决了OLTP,同时可对企业高层提供基本的一些OLAP,如库存查询、销售查询等,但这些功能相对高层决策的需求是远远不够的,因此有必要对原系统的数据库进行改造,建立合理有效的数据集市或数据仓库,以适应企业远期的战略目标。
数据仓库的建立是一个复杂的过程,首先要进行规划和分析,我们对原系统的数据进行分析,将原来孤立分散的数据元素进行抽取和清洗分类,把数据划分成了以下几个类:客户类(包含原有系统中的客户信息、客户账目明细等相关客户信息)、供应商类(包含相关供应商所有信息)、账目类(包含进销存的帐目往来及明细数据)、票据类(包含相关帐目票据)等。数据类的划分将原来松散孤立的数据根据使用特征有机地结合到了一起,可以有效地支持OLAP,同时为以后系统的扩展及升级也打下了良好的基础。不致于因一发而动全身。
将原有的数据库数据进行清洗分类后,下一步即开始数据仓库物理结构及存储的实施。目前,IBM、Oracle、Sybase、CA、NCR、Informix、Microsoft、和SAS等有实力的公司相继(通过收购或研发的途径)推出了自己的数据仓库解决方案,BO和Brio等专业软件公司也在前端在线分析处理工具市场上占有一席之地。在A项目数据仓库解决方案的选择上,我们选择了Microsoft的SQL Server 2005作为数据仓库实现工具。做为微软新一代的数据库产品,SQL Server 2005提供了很多新的功能,性能更加强大,同时,A系统原来的数据层是采用SQL Server 2000,因此采用SQL Server 2005可以很好地实现数据的提取和转换。同时,由于都是微软的产品,我们今后扩充A系统时,前台的查询和报表工具就可以采用dot net平台实现,无论采用C#还是VB.NET语言都可以实现强大的OLAP分析功能。
最终,由于经过了详细的设计和建模,A系统数据仓库的实施取得了良好的效果,系统的转换较为成功,新系统在数据仓库的支持下为高层决策提供了极好的支持。同时,由于采用了数据仓库,A系统的功能和扩展性也有了很大提高。为以后进一步进行操作数据存储(ODS)和数据挖掘(DATA MINEING)打下了坚实的基础。
参考文献:
[1]张友生,徐峰 《系统分析师技术指南》 清华大学出版社 2004
[2]http://www.enet.com.cn/article/2006/1212/A20061212332464.shtml 《九大数据仓库解决方案的性能和特点比较》
[3]http://www.enet.com.cn/article/2006/1212/A20061212332464_2.shtml《九大数据仓库解决方案的性能和特点比较》
[4]朱德利《SQLServer2005数据挖掘与商业智能完全解决方案》 电子工业出版社 2007
[5]飞思科技产品研发中心编《Oracle 9i数据仓库构建技术》电子工业出版社 2003。