探索中国CIO人才现状 | 第四季调研报告
详析商业智能及其关键技术
2013-11-21  作者:cc 

商业智能的概念

  GartnerGroup与1996年最早提出商业智能(BusinessIntelligence)的概念,当时将商业智能定义为一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处。

  商业智能以数据库技术为支撑,包括数据提取、转换和加载(ETL),联机分析处理、数据挖掘和商业模型等,其发展先后经历了事务处理系统(TPS)、高级管理人员信息系统(EIS)、管理信息系统(MIS)以及决策支持系统(DSS)等阶段,最终成为企业商业智能。

  对商业智能目前还没有准确的定义,不同的组织给出了不同的理解。DataWarehouseInstitute认为“商业智能是将数据转换成知识并将知识应用到商业行为上的一个过程"。

  GartnerGroup认为“商业智能是将数据转换成信息的过程,然后通过发现将信息转化为知识"。

  IBM则认为商业智能是指一种能力:通过智能地使用数据财产来制定更好的商务决策。

  以上从不同的角度给出了商业智能的定义,但都没有阐述其本质。商业智能被认为是将数据转化为知识,帮助企业做出业务决策的工具。为此目的,引需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘等技术。从技术上讲商业智能只是以上技术的综合运用,所以商业智能应该被看成是一种解决方案,商业智能的关键是从许多不同的企业运作系统数据库中提取出有用的数据并经过抽取(Extraction)、转换(Transformation)和装载(Load),合并到企业数据仓库里,从而得到企业数据仓库的总体视图,并利用适当的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理,将数据展示出的知识展现给决策者,决策过程提供支持。

  商业智能的研究内容

  商业智能的研究主要集中在三个方面:支撑技术的研究、体系结构的研究、应用系统的研究。

  (1)支撑技术的研究。商业智能是一个跨学科领域,主要借助两大学科的成果,一是计算机技术,其中关键是数据仓库技术和数据分析以及数据挖掘技术;另一个是企业管理方面的进展。计算机技术为商业智能系统能够提供技术支撑;企业管理理论为商业智能系统提供业务动力。

  (2)体系结构的研究。一般认为商业智能系统主要包括数据预处理、建立数据仓库、数据分析及数据展现四个主要阶段,而数据仓库、OLAP和数据挖掘技术是商业智能的三大关键技术。一般认为商业智能(BI)系统的架构。

  (3)应用系统的研究。各个应用领域所面临的决策问题的分析是应用系统的研究的重点。商业智能被应用到企业运营过程的各个领域,并且已经形成其特有体系。对一般企业来说,商业智能可以实现以下作用:帮助企业了解本身的运营推动力和异常情况,协助用户清楚产品未来趋势;衡量绩效指标,追踪并管理企业运行的关键性能指标;改善和加强客户关系;掌握各种商务信息挖掘利润增长点。

  商业智能的实施步骤

  商业智能系统的实旌涉及企业运作管理、信息系统、数据仓库、业务数据分析、数据挖掘等知识。即需要选择合适的商业智能工具,还必须按照正确的步骤实施,商业智能项目可分为以下步骤。

  (1)需求分析:需求分析是商业智能实施的第一步,必须明确定义企业对商业智能的期望和需求,包括分析的主题,查看的角度(维度),业务需求和用户的要求等。

  (2)数据仓库建模:通过需求分析,将企业中的数据按照主题归类,建立企业数据仓库的逻辑模型和物理模型,并设计Bl系统的架构。

  (3)数据抽取:必须将数据从业务数据库加载到数据仓库中,并在加载过程中进行转换、清洗,以保证数据的正确性和可用性。

  (4)业务系统的开发:主要是根据业务需求,对数据仓库中的数据进行各种数据分析和展示,主要包括多维数据OLAP分析和数据挖掘,以及建立商业智能分析报表系统及门户。

  (5)系统改进和完善:根据系统使用情况和用户反馈信息,对商业智能系统按照上述步骤对系统进行重构或完善。

  商业智能的发展趋势

  从应用和技术需求上看,商业智能的发展趋势可以归纳为以下方面。功能上具有可配置性、灵活性、可变化性。BI系统的使用范围从特定部门到企业所有用户,其业务多样化,需求格式不同,展示方式也各有变化,对BI系统在配置和灵活上提出了要求。

  解决方案更开放、可扩展、可定制。BI系统在原有方案基础,根据企业的独特需求,增加个性化设置的接口和扩展特性,使系统更加灵活而且扩大了使用范围。

  从单独的商业智能向嵌入式商业智能发展。即把商业智能组件嵌入到企业现有的应用系统中,使事务处理系统具有商业智能的分析特性。如SAP的ERP就嵌套了BusinessObjiect的商业智能产品,其它公司也有类似的合并,这是商业智能应用的一大趋势。

  从传统功能向增强型功能转变。商业智能增强功能是相对于SOL查询来说的,而企业建模、多维数据处理、数据挖掘以及数据预测等功能可以提高系统的可用性和智能性,通常被看作BI系统的增强功能。

  从市场前景来看,商业智能将面临BI提供商的合并;从战略型商业智能向操作性或实时性商业智能转换;以及更加智能和成熟的分析工具和展现工具等改变。

  一、数据仓库

  数据仓库是商业智能系统的基础,以往的数据库系统主要用于事务处理,很难或无法实现分析处理。近年来,越来越多的数据分析与决策信息支持在被企业所重视,数据仓库技术应运而生。

  数据仓库的定义

  目前对于数据仓库还没有统一的定义,被称为数据仓库之父的BillInmon在其著作《(BuildingtheDataWarehouse))一书中给出的定义被广泛接受:数据仓库(DataWarehouse)是一个面向主题的(SubjectOriented)、集成的(Integrated)、相对稳定的(Non.Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持管理决策。

  可以从两个层面对数据仓库的概念进行理解,首先数据仓库是面向分析处理的,主要用来支持决策制定;再者数据仓库包含历史数据,是对多个异构的数据源数据按照主题的集成,它的数据相对固定,不会经常改动。

  数据仓库的特点

  面向主题、集成、相对稳定、反映历史变化是对数据仓库的定义,也是对数据仓库特点的描述,下面分别解释它们的含义。

  (1)面向主题的:数据仓库的数据都是按照一定的业务主题进行组织的,面向主题体现在数据仓库的建设中,而且还包含在业务数据分析和存储上。

  (2)集成的:数据仓库中的数据来自各个不同的分散数据库中,它并不是对源数据库数据的简单拷贝,而是按照划分好的主题和数据分析要求,经过数据抽取、清理、汇总和整理等步骤,消除源数据中的错误和不一致数据,保证数据仓库中数据的正确性和可用性,所以它是整合集成的。

  (3)相对稳定的:数据仓库的稳定性体现在它的非易失性上,由于数据仓库是面向分析的,其中的数据是从业务数据中加载过来的历史数据,所进行的主要操作是查询和分析,供决策分析使用,所以其修改和删除操作很少,只需要定期的增量加载,所以具有相对稳定特征。

  (4)反映历史变化:数据仓库必须能够不断地捕捉业务系统中的变化数据,记录企业生产过程的各个阶段的信息,以满足决策分析的需要,所以必须实时地把新变化的业务数据追加到数据仓库中去,通过数据随时问变化的研究和分析,可以对企业的发展历程和未来趋势做出定量分析和预测。

  可见数据仓库与业务数据库的不同之处体现在:数据库是面向事务的设计,数仓库是面向主题设计的;数据库一般存储在线交易数据,数据仓库存储的一般是历史数据;数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计;数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。

 数据仓库与BI

  关于数据仓库和商业智能的关系,在业界还存在一些分歧。有人从数据仓库系统的角度考虑,认为数据仓库包含了从原始数据提取到用于见到的软件和应的所有内容。它和商业智能的创建步骤和目的都是一致的,它们没有本质的区别,可以看作是一回事。还有人从静态的角度看待数据仓库,认为数据仓库仅仅是集中式的高度规范化的数据存储,它只是为商业智能提供数据支持。不管是数据仓库还是商业智能,都是应业务分析需要而产生的,它们都不可能脱离业务逻辑分析和业务维度分析而存在。两者是相互存在,互为条件的。不存在脱离商业智能分析的数据仓库,也不存在没有数据仓库支持的商业智能。如果从商业智能的角度考虑,通常认为数据仓库为商业智能的一部分,它和联机分析处理以及数据挖掘被定义为商业智能的三个关键技术。从这个角度看,在商业智能系统中所指的数据仓库,是数据仓库构建和填充的过程,没有包括其分析功能,它为商业智能系统提供数据基础。

  二、数据抽取、转换和加载(ETL)

  ETL概念及作用

  ETL是数据抽取(Extract)、转换(Transform)、装载(Load)的缩写,是完成数据从数据源向目标数据仓库转化的过程,抽取是将数据从各种原始的业务系统中读取出来,这是所有工作的前提。转换是按照预先设计好的规则将抽取的数据进行转换、清洗,以及处理一些冗余、歧义的数据,使本来异构的数据格式能统一起来。装载是将转换完的数据按计划增量或全部的导入到数据仓库中。ETL是数据仓库、数据挖掘以及商业智能等技术的基石。

  ETL是Bl/DW(BusinessIntelligence)的核心和灵魂,它在商业智能系统中占据举足轻重的作用。在整个BI项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%。可见ETL的重要性,ETL设计的正确性和合理性,直接影响整个BI项目的效率和质量。

  数据清洗和转换

  ETL过程中最复杂的是数据清洗和转换,它通常是与业务需要和后期的数据分析和数据挖掘直接相关的,也是BI项目中资源密集程度最高的步骤。数据清洗的目的是除去数据中的“噪声(noise)”和不相关的信息。数据转换的目的是将源数据的数据值与类型转换为同一的格式。数据清洗和转换通常包括以下处理。

  数据类型的转换:这是数据转换中最简单的任务,由需要通常将布尔类型转换为整数类型;或连续的数据类型根据一定原则转变为离散的值;对数据进行归一化等。

  数据分组:有时可能有许多不同的值(状态)出现在离散列中,为了减少模型的复杂性需要把这些值分组,例如职业可能有几十种不同的值,如软件工程师、电子工程师、硬件工程师、顾问等,我们可以用一个“工程师’’来对其进行归纳,以减少模型的复杂度。

  数据聚集:聚集计算的结果是根据用户可能的查询预先计算好的汇总数据。比如希望通过每个客户的详细通话记录对客户进行细分,派生出呼叫次数和平均通话时间等属性列。

  离群点的处理:离群点称为孤立点,是数据集中的异常事例,这些事例是少数的情况,但却影响一般数据分析模型的准确性,需要对它们单独进行处理。通常情况是直接删除这些孤立点,对正常数据进行建模。但有时候对这些点的分析却有非常重要的意义,比如信用卡欺诈检测和网络入侵检测等。

  缺失值处理:从不同数据源集成过来的数据,由于多方面原因存在很多的缺失的数据,这些空值的存在严重影响了正常的数据分析工作,必须对其进行处理。目前有一些方法来处理这种问题,利用平均值代替或者用常见的值代替或者直接产出带空值的记录,无论使用怎么的方法,都必须看实际业务对数据的要求和对模型准确性的要求程度。

  还有其它的数据清洗和转换任务,在具体操作中,我们需要使用相应的工具来解决业务问题,确保数据的正确性及可用性。

  ETL的挑战

  ETL系统是一个复杂的系统工程,虽然ETL已经进入实用阶段,但还有许多阻碍其应用的情况。主要体现在异构数据源的结构差别和数据源数据质量方面。ETL的各个数据源位于不同的网络和操作系统,在数据格式定义,数据结构和接口方面都存在很大差异,给数据提取工作带来很多的麻烦。而且现有不同数据库系统存在无法解决的脏数据,包括命名格式不规范,滥用缩写词、惯用语、数据录入错误、数据重复、数据丢失、单位尺度不一致等。其中对数据集成和清洗影响最大的是以下问题。

  (1)数据冗余不一致。数据库系统设计时可能从方便或效率方面的考虑,将一种数据分别保存在不同的地方别进行维护,数据的修改得不到及时的反馈和统一,造成了数据之间的不一致,及增加了数据冗余度,也很难分辨数据的正误。

  (2)数据关联错误。由于数据库设计的不合理,很多情况下会存在数据之间的关联和依赖,包括属性关联即两个属性分别可以由对方推导计算出来,或实体关联即实体间使用关联属性来关联连接。这种设计方式会产生数据之间的不一致、实体关联性丢失甚至出现实体关联错误。

  (3)数据本身错误。由于在数据库设计时没有进行数据的约束设计,或者用户输入数据时的个人疏忽等原因造成数据源中存在不满足要求的数据以上问题给ETL的设计和实施增加了不同程度的困难,有时只有牺牲数据的准确性来达到系统效率和项目进度的要求。解决这些问题,还需要加强企业工作过程的规范化管理,改善企业的数据库结构等,随着企业信息化水平的提高,这些困扰ETL实施的问题会逐渐得到改善和解决。

  三、联机分析处理(OLAP)

  OLAP的理解

  OLAP是OnlineAnalyticProcess(联机分析处理)的缩写,E.ECodd于1993年首次提出这个概念。从字面上看OLAP是对联机数据访问和分析,它是为了满足更高效地进行多维分析的需求而产生的。OLAP的主要功能是根据用户所选择的分析,从多个角度(维)度对信息进行快速、一致、稳定地交互访问,使用户可以在短时间内从各种不同的角度审视业务的经营情况。OLAP是一种技术,它最大的特点是其机动性和快速性。OLAP技术是弥补关系数据库在统计及综合查询分析方面的不足,迎合人们对数据的复杂查询和对于数据分类别及层次等高级分析需求而产生的,能在短时间内响应非专业人员的复杂查询。可以利用OLM)技术从多种角度对业务数据进行多方面的汇总统计计算,还可以利用数据挖掘技术自动发现其中隐含的有用理解了OLAP与OLTP的区别,也就对OLAP的特点,功能和使用方式有了感性的认识,OLAP作为一种分析和存储技术,表现出它独特的优势。随着数据仓库的发展,数据仓库(DW)系统正成为新的决策管理系统解决方案。DW系统以OLAP为核心,但包括更为广泛的内容。

  OLAP操作

  OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它展现在用户面前的是一幅幅多维视图,它的技术核心是“维"这个概念。0LAP的多维分析操作有钻取、切片和切块以及旋转等。钻取是在维的层次上进行向上或向下的查看来改变分析粒度的查询。它包括向下钻取(Drill.down)和向上钻取(Drill.up)/上卷(Roll.up)。Drill.up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill—down则相反,它从汇总数据深入到细节数据进行观察或增加新维。切片和切块是在先固定一些维度上选择的属性值,然后查看度量值在其它维度上的变化。如果其它的维有一个则是切片;有两个以上则是切块。旋转是变换维的显示位置,即在表格中重新安排维的放置。

  OLAP的分类

  OLAP是以数据存在为前提的,按照数据的存储格式可以分为以下几种。

  (1)关系OLAP又称ROLAP使用关系或扩充关系DBMS存放并管理数据仓库,采用基于稀疏矩阵表示方法的星形结构或雪花结构存储多维数据,数据检索比MOLAP低效。

  (2)多维OLAP又称MOLAP是基于多维数据库来实现的,其数据存储采用多维方阵或矩阵方式,数据检索高效,是为直接支持多维查询分析处理而设计的结构。

  (3)混合OLAP又称HOLAP是结合ROLAP和MOLAP技术,在MOLAP立方体中存储高级别的聚集,在ROLAP中存储低级别的聚集。

  (4)桌面OLAP指没有自己的数据存储库,把用户的查询翻译为对数据源的查询,然后再把结果合成返回给用户。

  (5)客户OLAP是相对于ServerOLAP而言的,客户OLAP把部分数据下载到本地,为用户提供本地的多维分析。

  在商业智能系统中都是在数据仓库基础上建立OLAP,所以一般是对关系OLAP,多维OLAP和混合OLAP的讨论和使用。

  四、数据挖掘

  数据挖掘的定义

  关于数据挖掘(DateMining),目前没有统一的定义,不同的学者或机构按照自己的理解分别给出不同的说法。简单的说,数据挖掘就是指从大量数据中提取或“挖掘"知识。我们拥有海量的数据,却苦于信息缺乏,数据挖掘借用从矿石或沙子中挖掘黄金之意,是指从大量数据中自动地发现有趣的模式和有价值的信息,其中数据可以存放在数据库、数据仓库或者其它信息系统中有价值的信息的过程。

  与数据挖掘关系密切的的一词是数据中的知识发现即KDD(KnowledgeDiscoveryinDatabase),它是从大量的、随机的、有噪声的、不完全的、模糊的数据中,提取潜在的有用的信息和知识,这些知识是隐藏在其中的规律,不容易被人发现和识别㈨。有许多文献把数据挖掘和IED视为同义词,认为它们是一回事,但大多数人支持数据挖掘是知识发现过程的的一个基本步骤这样的说法。知识发现是将未加工的数据转换为有用信息的整个过程,它包括一些列的转换步骤,从数据的预处理到数据挖掘结果的后处理。

  在商业智能系统中谈数据挖掘,是指在以整理好的数据仓库基础进行的特定业务数据的挖掘,它注重数据挖掘算法的应用和挖掘结构的展示。由于是在数据仓库的基础上,还注重算法的效率和扫描数据库次数等方面。数据挖掘技术涉及到数据库技术、机器学习、统计分析、可视化、信息科学等多种技术。