用商业智能深入研究数据
by Rob Ericsson
涉及技术:Microsoft Business Intelligence Platform, SQL Server, SharePoint Portal Server, Commerce Server
企业在日常运作中会收集大量的数据;与客户或供应商的每个交互都会生成数据。企业通常花费大量的资金来构建联机事务处理(OLTP)和企业系统,从而来记录这些事务处理的结果。这些系统收集的数据增长得很快——每隔两到三年,它们就会成倍增长。遗憾的是,IBM所做的一项调查表明,当公司在做商业决策时,他们所重视的数据通常只占所有这些数据的2%到4%。这就意味着,零售商可能会失去可以提高产品销售量的机会、银行可能会失去有价值的客户、制造商可能会生产出错误的产品。不管你从事的是什么行业,没有充分利用你已经拥有的数据会让你花费更多的时间、资金,还可能会失去很多重要的机会。
商业智能(BI)讲述的就是如何运用企业已经拥有的数据来建立自己的竞争优势。BI是同你的企业系统结合在一起的,它可以让你将数据转换成信息。通过运用BI工具,决策者们就可以找到正确的数据、发现其重要性并对结果采取行动。Data Warehousing Institute(TDWI)将这个强大的封闭式循环过程描述为商业智能周期。商业智能周期是由五个步骤组成的:收集(capture)、分析、计划、行动(act)和检查(review)(见图1)。在本篇文章中,我将首先一步步地讲述这些步骤,然后讲述Microsoft在BI领域提供的.NET技术,最后给你在企业中实现BI提供一些明确的建议。
接下来,你需要对数据进行分析。在这个步骤中,决策者们运用分析工具从收集的数据中提取信息。分析工具可以有很多种,从简单的Excel电子数据表到定制的分析应用程序各不相同。在这个方面,为了最有效地对数据进行分析,不要用超过了用户决策需求的复杂的工具。
复杂的分析工具的学习曲线很陡,而且大多数用户可能并不需要所有的功能。一般只有20%的用户需要这样的工具。这些高级用户(power user)通常是很容易识别的,因为他们的工作需要大量的强大的工具,而且他们通常会很主动地让别人知道他们的需求。另外80%的用户就是一般用户(casual user)了,他们主要对快速得到结果感兴趣。如果他们认为这些工具太难或太花时间,那么他们可能就不用了。BI产品的一个不好的名声就是它们最终变成了“shelfware”——指的是那些购买了、但从来不用的产品。为手头的分析工作选择适当的工具对分析工作本身是很重要的(见工具条“选择BI工具”)。
在计划阶段,企业就会根据从分析得到的信息来确定采取什么样的行动。通常情况下,企业的决策者们会根据一个特别的目的来做计划。然而,你也可以利用一些专门的分析应用程序来根据实际数据创建行动计划。例如,运用一个可以确定市场动态(market dynamic)模式的客户关系管理(CRM)应用程序,然后创建一个市场营销计划来利用这些新信息。应用程序本身可以识别所针对的适当的市场范围,并可以让决策者们集中精力运用最佳方法使营销在该领域获得成功。
在做出计划后,BI周期中的下一个步骤就是采取行动了。这些行动可以有很多种,包括实现一个新的市场营销计划、雇佣更多的电话推销人员(telemarketer)让他们周末加班、为一条生产线改变供应商等。目前,大多数分析应用程序并没有与控制企业行为的企业系统直接集成;将这些应用程序与操作应用程序结合起来是个明确的趋势。将分析和操作应用程序结合起来的一个很好的方式就是通过企业门户,通过这个门户,用户可以看到分析的结果并通过相同的界面对结果采取行动。
在BI循环结束前,你需要检查结果。你可以定义并收集新的metric来帮助你估量和管理这些结果。这些metric,有时侯也称为关键绩效指标(KPI),可以帮你模拟和跟踪企业的业绩。如果关键领域的业绩达不到目标,那么这些metric就可以帮你集中精力来提高这些领域的业绩。一个工厂的事故指标可能就是有关metric的一个简单的例子了。如果事故超过了一个指定的限度,那么就需要对最近的事故进行评估,看看是否有系统问题,这些问题是否可以通过更好的培训和操作步骤来解决。
根据Survey.com的调查,数据仓库/BI解决方案的全球市场在2000年到2005年之间预计年均增长率为25%。如果你考虑到了实现BI解决方案的企业可能会得到的金融利润,那么这一数据就并不令人感到惊讶了。IDC发现,商业分析应用程序平均五年的投资回报(ROI)为431%,其中63%都是在两年内返回的。如果说大规模IT项目有很大的复杂性和风险性,那么这些结果就会给我们留下很深的印象了。
分析是所有知识员工(knowledge worker)的工作的一部分,每个人都需要可以访问支持他们决策过程的工具和数据。.NET提供了一些很有趣的工具可供你选择,它们可以帮助你最有效地来使用数据,并将这些数据运用到你的竞争优势中。
评估用于BI的.NET技术
Microsoft已经提供了一个平台,叫做Microsoft Business Intelligence Platform。该平台的核心之一,Microsoft Analysis Services,为.NET平台提供了OLAP功能。Analysis Services是SQL Server 2000(它是Microsoft的.NET Enterprise Server的一部分)的一个包。Analysis Services是以cube的形式来提供数据的,cube是一组以多维(multidimensional)结构组织在一起的数据,该多维结构是由一组维度(dimension)和量度(measure)定义的。在构建cube时,首先将数据从你的企业系统拷贝到一个数据仓库或数据集市(data mart)中(见工具条“熟悉BI术语和技术”)。你可以用SQL Server 2000包含的Data Transformation Services(DTS)或一个第三方提取、转换和加载(ETL)工具来简化该过程。要创建一个cube,你需要对不同维度上的量度进行集合(aggregate) 计算,并将数据保存起来以便以后读取和分析。关于如何创建cube,“Introduction to SQL Server 2000 Analysis Services: Creating Our First Cube”这篇文章提供了更多的细节(见资源)。
Office XP(Microsoft Business Intelligence Platform的核心部件之一)是用来访问cube的主要的客户端应用程序。Excel是最常用的,而且可以用Microsoft PivotTable Services创建cube的动态视图(见图2)。这就使分析人员可以用他们已经熟悉的工具来访问重要的信息了。
你也可以用Office家族的最新成员——Data Analyzer——以一种图形形式来显示和分析数据,该形式可以在一个屏幕上提供多维的企业信息(见图3)。Data Analyzer可以让用户对OLAP数据进行切片(slice)和切块(dice)处理,而不需要成为Excel专家。Data Analyzer的简单性和图形本质使其成为企业各个层次的决策者们进行数据分析时的理想的工具。
该平台的其它组件,包括SharePoint Portal Server、MapPoint和Commerce Server 2002,都是围绕Microsoft BI Platform的这些核心部件的。虽然这些部件与发布一个通用的BI应用程序有些不相干,但它们的确提供了一些功能,你可以将这些功能用在特定的环境中。
MapPoint可以形象化地呈现企业地理空间方面的信息,从而使用户可以更好地理解这些信息。对地理位置和人口统计维度的分析可以提供新的机会。例如,如果你的某个产品在某个特定的用户群中卖得很好,那么将该产品定位到具有类似特征的用户群就可以更有效地提高市场活动的针对性。
Commerce Server 2002有一个Business Data Warehouse,你可以用它来保存有关在线商务方面的数据,以便做进一步的分析。Commerce Server 2002的分析功能包括点击流(clickstream)应用、购买和浏览历史记录、产品目录数据、促销活动和用户信息(user profile)。这些功能可以帮助你充分利用你的电子商务信息,提高销售和赢利。例如,如果你发现你的网站上的购物者本来想将货物添加到购物车中,后来当他们了解到送货需要花多少钱后就取消了购买活动,那么你可能会做一个免费送货的促销活动,看看是否会带来更多的利润。
除了Microsoft Business Intelligence Platform的组件以外,.NET Framework本身可能也是你的企业BI架构的一个重要的部分。TDWI的一项调查表明,在已经部署了一个分析应用程序的企业中有62%的企业都是自己构建的。运用.NET Framework来构建你自己的独特的分析应用程序是使企业在同对手的竞争中拥有优势的一种方法。因为.NET Framework拥有强数据访问组件和容易分布的Smart Client,所以创建有竞争性和有用的分析应用程序就更简单了。
.NET提供的将现有的应用程序同Web services封装起来的功能简化了与内部系统和商业伙伴的数据集成。因为数据访问是构建最佳BI应用程序的关键,因此.NET可以提供一种方法将现有的系统转换成你的BI架构的有用的组件。你不用替换现有的系统来得到好的BI;作为替代,你可以用.NET来巩固数据,从而更好地进行分析。
除了可以提供传统的BI之外,.NET还可以提供一个机会将分析应用程序紧密地集成到操作应用程序中。在如今经济快速发展的大气候下,很高的操作效率(从分析到采取行动的整个过程没有中断)就会是个很强大的竞争武器。的确,这种集成将会是21世纪企业中的“杀手锏”。
然而,由于这项技术还很新,所以在有关BI应用程序开发的方面,.NET还有些不成熟的地方。其中的一个方面就是,用来访问Analysis Services的一个主要技术(ADO Multidimensional(ADOMD))在ADO.NET中还没有实现。这就意味着,如果不用一些非.NET代码,你就不能创建运用ADOMD的.NET应用程序。最简单的解决方法就是用.NET中的COM互用性功能来处理COM ADOMD库,但这么做就不能在你的整个应用程序中运用托管代码的好处了。还有另外一些方法来解决这种局限性,不过当Microsoft发布了ADO.NET中的多维功能后,就会有一个完全的.NET解决方案了。
总而言之,.NET平台提供了一些很吸引人的技术,它们可以使你的BI更容易、更有效。将你的BI架构建立在Analysis Services、Microsoft Office和.NET Framework之上,这样当该技术逐步趋于成熟时,它就会提供更多的功能了。
在你的企业中实现BI
BI项目同其它IT项目很相似,但也有一些你应该知道的独特的复杂性。总的来说,构建一个BI解决方案的困难就可以体现在David Consulting Group所做的一项调查中,该调查声称,数据仓库应用程序的以每人月功能点(function point)来衡量的传输率比电子商务应用程序的传输率的一半还低(见资源)。虽然这并不等于说,创建BI应用程序的困难比创建电子商务应用程序的困难要高一倍,但它证明了BI应用程序在分析、设计、构建和传输方面会更复杂。除了对每个应用程序所需的一般领域进行管理外,还应该对BI项目中的四个方面特别注意:元数据、数据、底层架构和应用。
构建第一个BI项目的最困难的地方就是收集元数据(描述你的数据的数据)。如果没有精确的元数据,决策者们就不能正确地辨别一个特定的分析结果的含义。然而,元数据总是很难定义、跟踪的,而且需要企业主要专家的全面配合。
设计ETL过程也是很困难的。正如我在前面所讲述的,数据质量很重要,而且它并不是你在项目结束时才应该考虑的事情——你应该从一开始就考虑它。总而言之,你的整个BI项目的质量主要取决于你的数据和元数据的质量。在这个方面花些时间是很值得的。
在本质上,BI应用程序有很多相关的数据。虽然你可以为分析优化数据,但人们对它们的处理需求是很大的。BI解决方案让用户最头疼的就是性能很慢。BI应用程序的需求很多,在可用性和性能方面需要对它们的底层架构仔细设计。
构建分析应用程序和构建其它商业应用程序很相似。然而,由于大多数分析应用程序有很强的可视性能,而且有更广的用户基础,所以你需要特别注意可用性。因此,同用户群有限的商业应用程序相比,它就需要我们花更多的时间、考虑更多的因素。
很少有其它领域像BI解决方案那样给你的企业提供如此多的好处。然而,这些好处是带有一定的风险的。.NET提供了一些很好的技术,使我们可以在企业中创建很好的BI底层架构,但是一个成功的解决方案也需要人们努力工作来实现它,以及对它进行仔细计划。
关于作者:
Rob Ericsson是位经验丰富的软件开发人员和项目经理,他主要致力于Microsoft技术的研究。他的e-mail是dotnet@l10systems.com。