北京甲骨文软件有限公司咨询经理鲁百年博士一、国内信息化的现状1、信息化建设的发展历史:在国内信息化建设过程中,基本上是按照当时业务系统的需求进行建设,例如:在一个企业中,财务部门为了减少工资发放的差错,提高发放的效率,先建设一个工资发放和管理程序;为了报账和核对的需求,建设一个财务管理程序;在银行首先为了业务处理的方便,将最基本的手工记帐和处理的业务建成一个系统,过一段时间,如果有新的业务推出,就再建设一个新的系统,或在原系统的基础上增加新的业务处理。这样的结果使每个系统和系统之间缺少真正的信息沟通和信息交换。2、为何要建立数据仓库:前面我们讲过,业务系统各自为政,相互独立。当很多业务系统建立后,由于领导的要求和决策的需求,需要一些指标的分析,在相应的业务系统基础上再增加分析和相应的报表功能,这样每个系统就增加了报表和分析功能。但是,由于数据源不统一导致了对同一个指标分析的结果不相同。为了解决该问题,BellInman提出了数据仓库的概念,其目的是为了分析和决策的需要,将相互分离的业务系统的数据源整合在一起,可以为领导和决策层提供分析和辅助决策。3、国内企业对数据仓库建设认识的误区:大家对数据仓库的认识是将业务系统的数据进行数据抽取、迁移和加载(ETL),将这些数据进行整合存放在一起,统一管理,需要什么样的分析就可提供什么样的分析,这就是数据仓库。这样做的结果是花了一年到两年的时间都无法将整个企业业务系统的数据整合在一起,花钱多、见效慢、风险大。一年后领导问起数据仓库项目时,回答往往是资金不足,人力不够,再投入一些资源、或者再延长半年的时间就会见到效果,但是往往半年过后还是仅仅可以看到十几张或者几十张报表。领导不满意,项目负责人压力也很大,无法交待。这时,项目经理或者项目负责人才意识到,项目有问题,但是谁也不敢说项目有问题,因为这样显然是自己当时的决策失误。怎么办?寻找咨询公司或者一些大的厂商,答案往往是数据仓库缺乏数据模型,应该考虑数据模型。如果建设时考虑到整个企业的数据模型,就可以建设成企业级的数据仓库(EDW)。什么是数据模型,就是满足整个企业分析要求的所有数据源。结果会如何,我个人认为:这样做企业级数据仓库成功的可能性太小。什么是企业级数据仓库,这是一个相对的概念,因为企业的业务系统会在不断的改善和升级,所以数据仓库的建设也会不断的完善和修改。数据仓库的建设是一个过程,它一定伴随着企业新的应用和企业各种各样新的需求而逐步完成。所以从数据整合入手、从企业级数据模型入手,均会给企业数据仓库的建设带来很大的风险。失败的概率太大了。二、以应用驱动,数据仓库建设应由后向前规划前面讲了数据仓库建设从数据源入手,先进行数据整合的方法会导致失败,特别是对信息化建设比较快而且数据量特别大的企业。这是因为数据仓库的理论均是讲从企业级的数据整入手,建立数据仓库。要么是大家对BellInman的理论由误解,要么就是数据仓库的祖师爷害了大家。数据仓库到底应该怎么建设?我一贯的主张是应用驱动。什么样的应用呢?从企业绩效管理的角度出发,一个企业最重要的四项关键指标为:财务指标、客户指标、企业内部的流程指标和学习创新的指标。应用从那个开始,应考虑企业的现状和决策层最关心的问题入手。在一般情况下,老总和董事会最关心的问题是企业的财务指标。其次是内部流程和员工绩效考核,再下来是客户的信息和决策支持。实际上在一个企业中最先上线的系统也是企业的财务管理和业务系统,这样相对财务分析是最容易实现的。因为数据较齐全,最完整,所以分析是较容易实现的,加之上市公司对财务报表的要求是最紧迫的。对财务分析从那入手,应该分析那些指标,这些指标通过什么公式(数学模型)计算,这些模型需要那些数据,这些数据又来自于那些业务系统,这些数据是否在业务系统中存在,能否进行分析,也就是这些主题的分析是否可行,应该先进行评估。这样从应用主题入手,就可以知道需要什么样的数据,来自那些业务系统和数据源,这些数据的全体进行一定的整合,按照分析的要求存储就组成了一个数据集市(DataMart)。三、“想大做小”(整体设计、分布实施)为了避免原有业务系统相对独立而形成的一个个信息孤岛,以应用驱动建设数据仓库,往往会造成新的信息孤岛。这是因为应用往往是部门级的或者是某一方面的应用,不能完全覆盖企业级的所有应用。当然我们这里不提倡一次建设企业级的应用。如何避免这个问题,是我这里着重要要强调的。这里分两种情形进行设计。1、如果该公司的信息化建设相对较晚,或者才开始进行信息化建设,或者原有的业务系统已经无法支持现有的业务而需要重新改造原有业务系统,均应该整体设计,将各个系统的数据源统一存放管理,有一个统一的入口和出口。这样就避免了数据源的不统一而会导致信息孤岛,这样数据仓库的建设也就无意义了。因为企业级的数据本身就按照业务的需求和分析的需求进行设计和存放管理。在这种情况下要特别注意业务系统的安全性和效率问题。如何解决该问题,最近的网格计算正是为解决该类问题而设计的。除了统一数据源外,可以根据企业的需要,可利用一个个小型机进行不同需求的应用,OLTP和OLAP可以在不同的服务器上完成,同时可以将各个服务器的资源共享、时间任务优化分配。这样既解决了统一数据源的问题,又解决了运行安全和效率问题(Oracle10g就是这种思想)。2、如果该企业是一个信息化建设较早并且业务系统仍在应用,现在还需要大量的分析和辅助决策,那么就应该建设数据仓库,最少是数据集市。在设计时要考虑到企业的数据仓库,但是在实施时应该从企业最需求的数据集市入手,要考虑到该数据集市和将来慢慢一步一步建设的数据仓库应该共享一个数据源。方法步骤如下:第一步、确立好应分析的主题(或项目),如客户关系管理系统;第二步、设定研究分析的具体问题,如客户流失率分析,客户贡献度分析;第三部、从这些问题出发,考察每个问题应使用的模型;第四步、所有模型所需要那些数据;将所有分析问题所需要的数据按照分析的类型进行分类存储,建立数据集市。当完成这个项目后,如果需要建设第二个应用(系统),如资产负债系统;重复以上四步,但是在设计时一定要考虑已经存在的客户关系管理系统,将第二个应用系统和第一个应用系统共有的数据要共享,这时应考虑两个系统上了以后的效率问题。如果存在着效率问题,则将第一个数据集市保留,并且做一个备份作为数据仓库的一部分,将第二个数据集市的数据源和第一个备份的集市进行整体合并作为现在企业级数据仓库。将第二个数据集市单独建立,但是数据源来自于共同的数据仓库,这样既保证了数据仓库的效率,也保证了数据源的同一性。这样一步一步将会建成企业级的数据仓库。四、三分段的设计思想在数据仓库建设中,我们知道可以将整体的系统化分为三个大的部分:业务系统、数据仓库、分析和展现。随着时间的发展,这三个部分随时都可能发生变化。比如:业务系统要进行升级改造或者重新建立核心业务系统,像银行的第三代;像电信的BOSS系统的改造等等。需求分析也会随着时间的发展、新的需求会不断提出,所以在数据仓库项目建设时一定要考虑三分段的设计思想。什么是三分段的设计思想:就是尽量将业务系统、数据仓库和分析展现分离设计。当业务系统发生变化时,尽量保证数据仓库的结构不变。如何做到这一点呢,那就需要在数据迁移时使用公式体系,作为数据仓库数据计算的公式,所以当业务系统发生变化时,可以通过对应关系将对应重新映射。关于业务系统变化,数据仓库的一些结构必须变化的情形我们下面将讨论。同样,当数据分析展现的要求发生变化时,数据仓库应保持相对的独立。这样数据仓库才能保证有生命力。但是当数据仓库不得不发生变化时,是否有先进的工具可进行多维立方体的可和性计算。也就是业务系统发生变化后,有先进的工具保证数据仓库的结构不发生变化,仅仅需要进行新的立方体计算、以及和老的立方体合并,而不需要将原数据仓库的数据全部重新刷新。这样在大型企业中非常重要,因为往往一次数据刷新需要几天或几十天的时间。五、最佳实施方案前面考虑了数据仓库建设应该整体设计、分布实施;从应用出发,建立数据集市;然后将数据集市扩展为数据仓库。数据仓库的设计应该注意三分段的结构。数据仓库的建设是一个过程。那么,最重要的问题和步骤就是:1、如何定义主题:在这方面,可以有两个办法:一是企业急需解决的问题,二是借助于同行或者国外的先进经验决定主题。对于第一种情况,也需要借鉴于国内外成熟和先进的经验。需要了解成熟的主题了在国际先进的企业内成功使用的方案和工具。例如:资产负债系统、转移定价、风险管理、客户关系管理等。2、主题设定后,应该分析那些问题:这些问题也应该借鉴于成熟的方案和工具,加上具体的本企业的需求,这就是客户化。例如在客户关系管理系统中分析:客户的贡献度、客户的流失分析和预警、客户的忠诚度、前十位带来效益的客户和最后十位带来最大损失的客户等等;这些问题应该由企业和解决方案供应商共同讨论决定。3、这些问题应该如何定义,也就是模型或者计算公式是什么:当定义了这些问题后,公式该如何定义,很多的公式是标准的,可以应用公认的标准公式,对于其他非标准的公式,应该借鉴国际上先进的企业使用的公式和模型。在方案供应商是否有现成的工具和方案,不仅仅是方案,还应该有现成的可以灵活客户化的工具或产品。4、当定义完公式后,数据结构应如何设计:首先要考虑公式中的数据是否在业务系统或者其他的系统中存在,如果不存在,该如何解决?如果存在,在那个系统中,如何抽取、整理和加载。数据应该以什么样的结构进行存储和管理。源数据该如何设计?在这方面如果有成熟的工具和产品,将对项目的成功带来了多半的希望。数据的存储一定要考虑到业务系统的变化带来的数据仓库结构的变化,一般也要考虑到五年存储的数据,当第六年的数据导入时,需要将五年前的一年数据迁移到磁盘阵列或其他的存储设备时,如何将多维立方体分割。要考虑如何将新的业务数据增加到数据仓库时多维立方体的可和性。5、当解决了数据的存储和管理后,数据仓库应用该如何展现:展现是使用者十分关注的问题,展现的易用性、直观性和灵活性是十分重要的,可以采用流览器方式,报表、图形和多维展现或动画。但是一定要注意速度和效率。6、展现确定后,速度效率如何提高:对于一个非常重要的报表,例如:现金流、资产负债表和损益表,企业的三、四位老总可能非常关心,每天或者季度初的第一天早上上班先要察看该报表的结果,第一个老总很快看到了结果,但是第二个、第三个需要三十秒、一分钟的时间哪就无法忍受。所以系统一定要考虑做压力测试,采用好的解决方案。如将常用的报表做上几个备份,或者多开上几个监听器。为了提高效率,数据的存储结构是十分重要的,比如对离散数据可以进行转置存储、对于一年都很少改变几次的数据,如信贷数据,可以采取时间压缩的方法等等。7、硬件如何配置,才能保证安全性、效率问题得到圆满的解决:考虑了数据存储的结构后,要考虑数据需要保留几年,需要估计存储数据量的大小,以保证硬件的采购和效率。8、要考虑到数据的安全、系统的安全。六、最佳实践除了以上讲的以外,如果产品或者解决方案已经经过国际的认可应用,那应该是最佳实践。比如:在银行推广的巴塞尔协议的应用产品就属于最佳实践。这些项目我们可以将应用直接拿来使用,以规范我们的管理和流程。对于一些不满足国内应用的我们加以分析,进行调整,实现客户化。这些应用的主题、问题和模型是经过很多实践得来的,是可信并值得借鉴应用的。0