标题：基于ERP的数据仓库
企业信息化发展概述
自从计算机进入企业开始为企业服务起，企业就开始不断开发相应的计算机系统来为企业服务。刚开始，一般是开发各个部门的应用系统如工资系统、人事系统等。随着企业的发展和信息技术的进步，这些系统也不断的进行着功能上的扩充、修改和维护以适应新形势下企业发展的需求，这时也可能引进了一些商业软件包来完善企业管理。这时，企业各个部门的系统之间也开始有了数据的共享和交换的需求；或许，由于企业的扩大，可能合并了其它一些企业，这时企业就面临着不同信息系统之间的合并，而这些系统在设计之初根本就未考虑过将来与其它系统之间的集成问题。随着企业的发展，企业已不满足信息系统仅仅提供对企业事务处理的支持，更希望能够辅助企业的管理决策活动，因而，很多企业也开发了相应的决策支持系统。但是由于企业应用过于分散，经常是各个部门或个人的需要又在原有事务处理系统基础上开发新的数据抽取应用程序用于支持管理决策活动，这样使得企业的应用系统就更加复杂，而且往往效果并不好。
由于企业应用系统日益复杂，使得系统的运行和维护效率变低，企业数据分散、重复存放、不可用、垃圾数据等情况纷纷出现，导致一方面企业的事务数据越来越多，放入了企业信息系统这个黑箱中，而另一方面管理决策人员却为无法及时准确的获得所需的数据而发愁。
上述发展过程显示了企业对信息系统的两个不同方面的需求：一是结合先进管理思想，能够高效集成企业内外部资源为企业战略目标服务的事务处理系统；二是将来能够使企业内部事务处理和企业外部的数据转化为信息。
有需求就会有发展，到了20世纪90年代，信息技术发展出现了两个新的方向：企业资源计划（ERP）和数据仓库（Data Warehousing）。这两种信息技术应用在企业中就能够解决上面提到的企业新遇到的问题。
ERP和数据仓库简介
，并将企业内部划分成几个相互协同作业的支持子系统，如财务、进销存、生产制造、服务、维护、工程技术等，可对企业内部供应链上的所有环节如订单、采购、库存、计划、生产制造、质里控制、运艳、分销、服务与维护、财务、成本控制、经营风险与投资、工程设计、人力资源等有效地进行管理，从管理的范围和深度上为企业提供了更丰富的功能和工具。
如果我们从另外一个角度来看ERP，其发展过程也是将企业各种资源逐步集成到企业信息系统的发展过程。刚开始是库存系统，然后生产系统，采购和销售系统。财务系统和人事系统等逐步都加进了企业的信息系统中，从而形成了企业完整的事务运作信息系统，使得企业内的应用得到统一，从根本上消除了企业应用的蜘蛛网问题。
数据仓库的概念则是由Bill Inmon提出的，目的就是为了解决企业遇到的“企业应用蜘蛛网”现象和更好的支持管理决策。数据仓库技术，简单的说就是将企业内外部的数据进行全面的集成、清洗和整理，去除一些纯事务性的数据，将企业数据按主题放置到一个“仓库”中，然后再在此基础上建立各种决策支持应用为企业服务。
数据仓库中的数据是面向主题的、集成的、历史的和不可修改的，其所存储的数据量也非常大，一般存放5年左右的历史数据数据仓库中的数据由于是经过整理的，包括企业内外部产生的所有有用的数据，因此，建立在数据仓库之上的决策支持应用得到的结果才能是正确可靠的。由于数据仓库中数据的组织模式与以往的管理信息系统和决策支持系统不同，它能提供更加强大的数据分析功能，如多维分析，数据挖掘等，可以对数据进行更深层次的信息发现
ERP和数据仓库这两种信息技术能够分别提供企业的事务处理和决策支持功能，将两者集成，就形成一个完整的企业信息系统体系结构。
基于ERP的数据仓库
前面提到企业信息系统要能提供事务处理和决策支持两方面的功能。当企业实施了ERP之后，企业所遇到的第一个问题就可以得到解决，ERP将企业各个部门的应用整合在一起，能够充分地配置和使用企业的资源，消除企业应用蜘蛛网现象，使得企业内外部事务能够高效、准确、及时的完成。剩下的问题就是如何把ERP系统事务数据和其它外部数据集成转化为信息。
ERP是一个通过信息技术将企业内外部资源在企业组织内外进行合理高效的配置和使用，更好的为企业战略目标服务的技术型信息系统，也是一个包含了多种先进管理思想的社会型信息系统，它强调的是管理的先进性、及时性、安全性、可靠性等。如企业接到一个客户订单，需要马上进行生产能力等各项综合估计，这时，对企业来说，时间就是企业的生命。ERP就其本质上来说是一个事务型信息系统，主要用来快速高效地处理企业的日常事务。虽然，现在的ERP软件系统都提供了部分的管理决策支持功能，如各种报表等，但这些并不能完全解决企业对管理决策的需要，因为毕竞ERP在系统设计时关注的是数据的“入”而非“出”，要从中实时取得有价值信息是比较困难的。
ERP的主要目的也是为企业提供高效的事务处理功能。数据分析一般来说运行时间比较长，对系统要求比较高，如果直接在事务处理系统上直接进行数据分析的话，会极大的影响事务处理系统的效率。事务型处理强调效率，而分析型处理强调效果，两种处理方式完全不同的应用如果放在一起的话，互相之间会影响，降低整体效率。ERP事务处理系统产生的数据，在系统设计之初是为了提高系统整体效率而考虑的，直接在上面作数据分析效果并不好，不能充分挖掘数据中的隐含信息。因为，虽然事务型处理和分析型处理的最初数据来源是一样的，但是两者又有着很大的不同。如有很多数据都是纯事务性数据，对管理人员来说毫无价值，而有价值的数据比较分散，不利于使用，所以必须将数据进行某种方式的转化，以迎合企业管理决策的需要。
如果将ERP的事务数据经过清理转入数据仓库，再在数据仓库基础上建立各种分析型应用的话，那将是一个绝佳组合。ERP处理企业事务，数据仓库辅助企业管理决策，各司其职。建立基于ERP的数据仓库，首先是分析ERP的数据模型，在其基础上建立相应的数据仓库数据模型，这时对关键数据的识别、整理、清洗、转化和主题域的确定非常重要，之后的数据抽取程序建立等工作也不容忽视。企业决策所需的信息也不仅仅全部来自ERP系统中，还有一部分数据来自于企业内部其它系统和企业外部，在建立企业数据仓库时，也必须将之和ERP数据进行整合放入数据仓库中。
有了基于ERP的数据仓库系统，就可以建立各种商业智能应用。针对企业各部门和ERP系统模块，对外可以建立供应商分析、客户分析，内部可以建立生产、库存、销售、人事和财务等分析系统，并且这些系统可以进行交叉分析，例如可以对某员工在某时间段对某客户的销售情况进行交叉多维分析，还可以进行一些高级的数据挖掘分析等。
ERP和其它运作应用中的数据经过综合，进入操作数据存储（ODS）、企业数据仓库（edw）和部门级数据集市（Data Marts）中，在此基础上就可以建立CRM、商务智能等各种决策支持应用。
图1是一个基于ERP的数据仓库体系结构图。
  图1 基干ERP的数据仓库体系结构图
4 建立基于ERP的数据仓库需要注意的问题
分别建立ERP和数据仓库的目的是将企业事务处理和决策支持相分离；而两者集成的目的是为了更好的把ERP中的事务处理数据和外部数据转化为管理决策所需的信息，并能够对这些数据进行多维深度挖掘。
但是，要真正建立一个良好的基于ERP的数据仓库却不是件容易的事。建立基于ERP的数据仓库面临的问题总的来说集中在两个方面：一是如何将事务处理逻辑模型和数据仓库模型对应起来，并将ERP事务处理和外部数据转人数据仓库中，即数据仓库的建立；二是在数据仓库基础上如何构建企业的商业智能来支持企业的管理决策活动，即数据仓库的应用。
ERP的业务逻辑非常复杂，要从这些业务逻辑和外部的数据中提炼出数据仓库的主题和数据模型是很困难的，但由于ERP系统有着相对比较固定的业务逻辑，相对于其它数据仓库的开发来说，需求更加明确。ERP系统中，一般数据库的表会达到几千张，要将数据从ERP向数据仓库迁移，构建这种数据转换抽取程序也是非常困难的。由于数据仓库中存放的数据量很大，通常是一些合计表，而这些合计表的建立是为决策支持程序所使用的，与这些程序相关，如多维分析和报表查询对数据模式的要求就不一样，因此，合计表如何建立要重点考虑。在建立商业智能应用时，如报表查询、多维分析和数据挖掘等，要结合企业具体的需求和一些高级商业应用系统所提供的功能进行考虑，还有可能要针对各个部门需要建立各自相应的分析应用系统。