什么是BI?商业智能也称作BI,是英文单词BusinessIntelligence的缩写。商业智能的概念最早在1996年提出。当时将商业智能定义为一类由数据仓库(或数据集市)、查询报表、数据分析、数据挖掘、数据备份和恢复等部分组成的、以帮助企业决策为目的技术及其应用。目前,商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。这里所谈的数据包括来自企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部环境中的各种数据。而商业智能能够辅助的业务经营决策既可以是操作层的,也可以是战术层和战略层的决策。为了将数据转化为知识,需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘等技术。因此,从技术层面上讲,商业智能不是什么新技术,它只是数据仓库、OLAP和数据挖掘等技术的综合运用。图1商务智能的发展因此,把商业智能看成是一种解决方案应该比较恰当。商业智能的关键是从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理(这时信息变为辅助决策的知识),最后将知识呈现给管理者,为管理者的决策过程提供支持。图2商务智能的原理BI的选型要选型,首先要了解目前市场上主流的BI产品:数据库方面,有DB2、Oracle、SQLServer、Teradata,早先还有专门用于数据仓库的Redbrick(被IBM收编以后,退出历史舞台)。ETL工具上,像Datastage、Powercenter都是比较主流的,此外,还有很多公司也有自己的ETL产品,例如SAS的ETLServer、BO的DataIntegrator等。OLAP工具上,则还可以细分为MOLAP(Muilt-DimensionOLAP,多维度型在线分析系统)和ROLAP(RelationalOLAP,关系型在线分析系统),前者可以选择Hyperion、Cognos、Microsoft公司的产品,而后者可供选择的余地就不多,像Microstrategy可能是目前能够看得见市场份额比较大的,以前和Redbrick一起。此外,还有一个叫Metacube的ROLAP工具,早在2000年以后也退出市场。数据挖掘产品领域,有SAS、SPSS等两大厂家,而像IBM、Teradata也都有自己的挖掘工具。除此之外,在报表服务器、前端工具上的选择可就多了,其中,Cognos、BO、Brio是比较主流的。从这些主流产品来看,大多是舶来品。国内也有研发BI产品的,但多限于ETL、前端以及数据挖掘产品。从目前各类用户的产品选型过程来看,问题多出在以下几个方面。其一,只见树木不见森林,只顾得降低单个工具的成本,却忽视了总体成本。有些大企业在IT建设上一掷千金,从不在乎在购买产品上投入多少,每一块都是选用最好的。但是,更多的企业则不得不出于成本考虑,能省则省。除了数据库和OLAP工具两项之外,经常动心思的地方就是,设想如果把ETL和前端展现自己来开发是不是会省点资金出来。然而问题是,如果仅仅从单个产品的成本考虑而忽视综合的项目成本,最后很可能会被难以维护的程序所困扰,甚至要完全推翻重来,这样的成本恐怕会更高。而对于那些财大气粗的大企业来说,即便选择了每个领域最好的产品,组合起来也不一定就是最好的。其二,评估报告难以客观。企业负责产品选型的人,通常要求厂商提供一份评估报告,要列出几种方案选择,各自优劣何在,最后得出哪种方案是最适合自己的。如果从字面上理解此报告,某种产品哪方面比较好,哪方面不好,这并不客观。对于厂商而言,这就是一笔单子,当然会尽量把自己产品的优势体现出来,而回避自己的弱势。同时对于选型负责人来说,也许其早就对某种工具有好感,或是跟某个厂家的关系不错,甚至有更进一步的交易。这样的情况,想客观一点不容易。选型要点其实,如果是选择这些主流的产品的话,大家知道一句话,“没有最好的,只有最合适的”。什么是最合适?抛开上面提到的幕后因素,其实也就是三点需要考虑——产品成本、开发人员对这个产品的熟悉程度、有没有类似案例。首先看成本。NCR、IBM和Oracle的产品线完整,但却很贵。微软的产品便宜些,可如果数据量大,恐怕又不太敢用它,就更别谈那些不要钱的开源产品了。当然,成本不光是产品本身的价格决定的,后面人员学习、项目延期、客户满意度低都要作为成本考虑,这些隐型成本才是难以计算的。提到成本,就不能不提一下BI模型,因为BI产品中模型是最昂贵的一部分,在国内很大一部分企业采用的自主开发的方式,采用这种方式可以避免高额的费用,但却无法学习到国外先进的商业经验。再看人员的经验。人的学习曲线是不可避免的,不要妄想人们接触一个新产品就能立马成为高手,能够基于陌生的产品做出良好架构。这方面,显然Oracle和微软有优势,因为在这两家产品上有经验的人多,好找。当然,如果你们原来的业务系统用的就是这几家产品之一,不妨仍然用它。其次案例比白皮书更重要。如今很多BI厂商可以提供全方位解决方案,提供一站式服务。像IBM、Oracle、SAS都称自己是这样的全方案提供商,也就是说它们的产品线已经包含了数据库、OLAP、ETL等各类工具。直接选用它们,就不用再为工具选型烦恼了,但企业有时由于各方面的原因,决定不使用一家产品时,要考虑他们之间是否兼容。但如果你要是从产品的白皮书里去寻找此类信息,会发现说得很美,互相之间会如何完美地“无缝”兼容,但实际上却不是那么回事。因此,不要去看这些文字的东西,要去寻找同行业类似的案例,如果同行业没有,就去寻找数据量类似、业务复杂度类似以及相似应用的其他行业案例。BI的体系架构及相关技术一个BI系统为了满足企业管理者的要求,从浩如烟海的资料中找出其关心的数据,必须要做到以下几步:1)为了整合各种格式的数据,清除原有数据中的错误记录——数据预处理的要求。2)对预处理过数据,应该统一集中起来——元数据(MetaData)、数据仓库(DataWarehouse)的要求;3)最后,对于集中起来的庞大的数据集,还应进行相应的专业统计,从中发掘出对企业决策有价值的新的机会——OLAP(联机事务分析)和数据挖掘(DataMining)的要求。所以,一个典型的BI体系架构应该包含这3步所涉及的相关要求。图3BI的体系架构整个体系架构中包括:终端用户查询和报告工具、OLAP工具、数据挖掘(DataMining)软件、数据仓库(DataWarehouse)和数据集市(DataMart)产品、联机分析处理(OLAP)等工具。1)、终端用户查询和报告工具。专门用来支持初级用户的原始数据访问,不包括适应于专业人士的成品报告生成工具。2)、数据预处理(STL-数据抽取、转换、装载)从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图。3)、OLAP工具。提供多维数据管理环境,其典型的应用是对商业问题的建模与商业数据分析。OLAP也被称为多维分析。4)、数据挖掘(DataMining)软件。使用诸如神经网络、规则归纳等技术,用来发现数据之间的关系,做出基于数据的推断。5)、数据仓库(DataWarehouse)和数据集市(DataMart)产品。包括数据转换、管理和存取等方面的预配置软件,通常还包括一些业务模型,如财务分析模型。6)、联机分析处理(OLAP)。OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。其中核心技术在于数据预处理、数据仓库的建立(DW)、数据挖掘(DM)和联机分析处理(OLAP)三个部分。接下来,我们对这几个核心部分进行详细说明:数据预处理:当早期大型的在线事务处理系统(OLTP)问世后不久,就出现了一种用于“抽取”处理的简单程序,其作用是搜索整个文件和数据库,使用某些标准选择合乎要求的数据,将其复制拷贝出来,用于总体分析。因为这样做不会影响正在使用的在线事务处理系统,降低其性能,同时,用户可以自行控制抽取出来的数据。但是,现在情况发生了巨大的变化,企业同时采用了多个在线事务处理系统,而这些系统之间的数据定义格式不尽相同,即使采用同一软件厂商提供的不同软件产品,或者仅仅是产品版本不同,之间的数据定义格式也有少许差距。由此,我们必须先定义一个统一的数据格式,然后把各个来源的数据按新的统一的格式进行转换,然后集中装载入数据仓库中。其中,尤其要注意的一点时,并不是各个来源的不同格式的所有数据都能被新的统一格式包容,我们也不应强求非要把所有数据源的数据全部集中起来。Why?原因很多。有可能原来录入的数据中,少量的记录使用了错误的数据,这类数据如果无法校正,应该被舍去。某些数据记录是非结构化的,很难将其转化成新定义的统一格式,而且从中抽取信息必须读取整个文件,效率极低,如大容量的二进制数据文件,多媒体文件等,这类数据如果对企业决策不大,可以舍去。目前已有一部分软件厂商开发出专门的ETL工具,其中包括:ArdentDataStageEvolutionaryTechnologies,Inc.(ETI)ExtractInformationPowermartSagentSolutionSASInstituteOracleWarehouseBuilderMSSQLServer2000DTS数据仓库:数据仓库概念是由号称“数据仓库之父”WilliamH.Inmon在上世纪80年代中期撰写的《建立数据仓库》一书中首次提出,“数据仓库是一个面向主题的、集成的、非易失性的,随时间变化的用来支持管理人员决策的数据集合”。面向主题是数据仓库第一个显著特点,就是指在数据仓库中,数据按照不同的主题进行组织,每一个主题中的数据都是从各操作数据库中抽取出来汇集而成,这些与该主题相关的所有历史数据就形成了相应的主题域。数据仓库的第二个显著特点是集成。数据来源于不同的数据源,通过相应的规则进行一致性转换,最终集成为一体。数据仓库的第三个特点是非易失性。一旦数据被加载到数据仓库中,数据的值不会再发生变化,尽管运行系统中对数据进行增、删、改等操作,但对这些数据的操作将会作为新的快照记录到数据仓库中,从而不会影响到已经进入到数据仓库的数据。数据仓库最后一个特点是它随时间变化。数据仓库中每一个数据都是在特定时间的记录,每个记录都有着相应的时间戳。图4数据仓库体系架构数据仓库对外部数据源和操作型数据源的元数据,按照数据仓库模式设计要求进行归类,并建成元数据库,相对应的数据经过ETL后加载到数据仓库中;当信息客户需要查询数据时先通过信息展现系统了解元数据或者直接浏览元数据库,再发起数据查询请求得到所需数据。一个典型的企业数据仓库系统,通常包含数据源、数据存储与管理、数据的访问三个部分。图5数据仓库系统数据源:是指企业操作型数据库中的各种生产运营数据、办公管理数据等内部数据和一些调查数据、市场信息等来自外环境的数据总称。这些数据是构建数据仓库系统的基础是整个系统的数据源泉。数据的存储与管理:数据仓库的存储主要由元数据的存储及数据的存储两部分组成。元数据是关于数据的数据,其内容主要包括数据仓库的数据字典、数据的定义、数据的抽取规则、数据的转换规则、数据加载频率等信息。各操作数据库中的数据按照元数据库中定义的规则,经过抽取、清理、转换、集成,按照主题重新组织,依照相应的存储结构进行存储。也可以面向应用建立一些数据集市,数据集市可以看作是数据仓库的一个子集,它含有较少的主题域且历史时间更短数据量更少,一般只能为某个局部范围内