BI是什么?几年前,当我还是商业智能:更快更好地作出决策(微软出版社,2002年)的共同作者时,我就感到非常惊讶,因为我和我的合作伙伴在哪些技术应视为属于BI领域范畴,因而应该在那本书中介绍的问题上,竟然存在这么大的意见分歧。对于哪些工具是BI工具,而哪些工具不是,在BI专家之间居然能够听到这么对立的意见,这实在是一个非常有启迪意义的经验。在IT行业中,这种观点的差异仍然存在,许多人还在围绕BI的定义争论不休。对我来说,BI是一个既有业务流程特点又有技术特点的概念,因此我们便从这个角度开始来定义BI。从业务流程角度来讲,BI是您执行的一系列活动,目的是为了收集和分析数据,以便可以做出更好的决策,并通过与其他人共享分析结果来改进您的业务。您是否需要信息以确定如何提高您的日常工作效率或支持长期规划(例如下一年的预算,要采取什么步骤来查找、传输、格式化和研究数据等等),这都属于BI的范畴。此外,BI还包括要如何在今后参考您的结果,这样您和其他人就可以在研究数据后,对您所作出的决策的效果进行衡量。通常来说,BI是一个反复总结演进的过程。首先您分析数据以了解发生了什么事情,接着您采取措施以不断推行好的做法,制止不好的做法,然后您再次分析数据以确定您的操作效果如何,以及外部因素会给您的工作带来什么影响。根据这个宽泛的BI定义,即使您只是草草记录信息,或者只是创建一个列表以帮助您做出全天的决策,都是在使用BI。通过在用于收集、分析和共享信息的部分或全部业务流程中引入技术,可以使这些流程更加富有效率。组织在开始时往往是小规模采用BI技术,而且通常主要是为了解决特定问题。经过一段时间后,组织越来越多地使用BI技术,并且其重点也转移到如何在整个组织中有效地传播信息上。随着BI战略的不断成熟,组织通常会获得更加复杂的工具,以便能够更好地与数据交互和研究数据。查询企业数据库有什么问题?无论在哪个BI定义中,数据都始终是焦点。那么您可能想知道,如果只需查询一个或多个组织的数据库即可获得所需的数据,为什么还要费力创建BI解决方案呢?如果您是正在收集的数据的唯一使用者,如果您具有用于访问企业数据库的工具、技能和安全权限,并且您需要的所有数据都位于这些数据源中,那么您可能不需要正式的BI解决方案。与之相反,如果您经常需要与具备不同技能和安全权限的其他人共享信息,那么您可能需要创建一个可以简单使用和维护的BI解决方案。您还需要考虑一旦您的同事听到这种方便的BI解决方案,他们也可能想要使用它。为了预见这种需求,您的解决方案从一开始就应具备可伸缩性。表面上看来,让公司中的任何人都可以运行报告,以便从企业数据库中获取数据,这似乎是一个不错的办法,但这种方法可能不会受到数据库管理员的欢迎。因为他们会告诉您,直接查询企业数据库可能会带来一些问题。以下是几个常见的问题:如果组织的数据以不同格式存储在不同平台中,那么要将这些数据合并为可用于分析的通用格式是非常困难的。数据无法从源表直接复制到公共的目标表中,而是需要在存储前执行某些操作。在多个的数据库中,数据定义可能不一致,而协调看起来相似的数据是非常困难的。例如,销售数据库中的收入数据可能是根据一组业务规则计算的,但它们可能又受到总帐数据库中的一组完全不同的业务规则的影响。每个数据库都可能针对数据插入或执行查询进行了结构化或优化。即使您只想查询一个数据库,但运行分析查询通常需要汇总大量的数据,而这将消耗较多的数据库资源。因此,您的查询可能需要执行很长时间,并且可能会与其他执行插入、更新或查询操作的应用程序产生资源争用。历史数据通常存档而非在企业数据库中无限期地维护。如果您想要查看一段时间内的趋势(这是常见的BI活动),您的解决方案可能需要存储不会持续保存在企业数据库中的数据。一些分析所需的数据可能不在企业数据库中。而可能在平面文件、电子表格或是非结构化数据格式(例如Word文档的格式)中。更大的麻烦在于获取人们存储在其本地计算机或脑海中的信息。即使可以得到数据,有时质量问题也意味着您不能直接从数据源中使用数据。您可能需要下载数据并对其进行清理,然后才能分析数据。除非可以在数据源中清理数据,否则您每次访问数据时都需要手动清理,并且还需确保每次都应用相同的规则。此外,您无法确保所有其他使用相同数据的人都使用相同的规则来清理它。为了解决这些数据访问的问题,BI解决方案通常包括创建一个专门用于容纳待分析数据的数据库。具有这样一个数据库意味着您可以避免生成数据的活动和使用数据的活动之间的任何资源争用。而且,您可以重构数据,这样汇总数据的查询可以运行得更快。如果您需要合并来自多个数据源的数据,您可以集中这些数据,然后应用业务逻辑,以将数据转换为具有一致意义的通用格式。您还可以将不是来自数据库的数据(例如来自XML文档或电子表格的数据)合并到此中央位置。创建单独数据库的另一个好处是在从源数据库中清除数据后,您可以根据需要保留历史数据,无论多长时间。最后,您可以自动清理和增强用于分析的数据,从而确保每次访问数据时都应用相同的规则。决策支持BI解决方案并非仅仅可以让您更好地访问数据。它还应具体支持您的决策工作。总的说来,BI解决方案应可以帮助您评估和响应业务条件,帮助您确定需要从整个组织的整体角度,还是从部门、工作组或甚至单人团队的局部角度来看待问题。实际上,能够快速从数据的汇总视图转到详细视图是BI的一项重要功能。BI解决方案的目标是让您可以分析数据并寻找问题的答案,而不是去跟踪、合并、重新格式化和协调数据本身。当您有足够的时间来分析数据时,您通常可以在早期发现问题,并采取措施以阻止负面趋势继续发展。您还可以使用BI来发现看似无关的数据点之间的关联,然后根据您的观察调整战略,从而节约资金或获取利润。无论您是解决问题还是规划将来,您在每天的工作中作出的每个决策都将直接或间接转化为企业的成本或收益。BI实战在理论层次上了解BI是很好的,但在实战中使用它则有助于您了解其优点。为了向您展示BI的工作原理,在本系列的其他3篇文章中向您介绍了为一个名为AdventureWorks的虚构公司开发BI解决方案的案例。在本文末尾,我将说明如何获得AdventureWorks的示例数据库,AdventureWorks是一个虚构的自行车制造商,其产品销往世界各地。这家公司通过一名销售人员将其产品批发给零售商,例如小型的专业自行车商店或大型的仓储式购物中心。AdventureWorks还通过Internet直接将产品销售给个人消费者。AdventureWorks数据提供了很多分析的机会,它们非常适合用于BI解决方案。请记住BI解决方案的目的在于支持决策。记住了这点,现在让我们来考虑一下AdventureWorks在进行关键决策之前需要回答的问题类型:哪种销售渠道更具盈利能力?AdventureWorks必须决定要增加投入雇佣更多销售人员以便与更多销售商展开合作,还是增加其Internet销售份额。为了帮助做出此项决策,分析人员需要比较分销商和Internet站点在一段时间之内的销售业绩。销售人员需要比较的销售业绩数据点(也称为度量值)包括销售额、订单数量和收益率。收益率的正趋势是最重要的度量值,因为即使销售额和销售数量再高,如果它们产生了净亏损,公司也不会受益。对于某些产品的需求是增加还是减少了呢?AdventureWorks必须根据销售需求来确定生产量。如果对某些产品的需求增加了,AdventureWorks必须调整其生产流程,以确保提供更多产品并增加销售。如果对其他产品的需求减少了,AdventureWorks需要减少其生产量,甚至可能需要取消产品线,以避免出现供过于求的状况而不得不亏本出售产品。即使您的工作不是分析销售数据,我还是建议您跟我们一道为AdventureWorks建立一个BI解决方案。您可以对您自己的数据应用本系列文章中介绍的设计和开发原则。MicrosoftBI堆栈现在让我们深入了解一下BI技术的体系结构。MicrosoftBI堆栈可以提供您用于生成、管理和使用BI解决方案所需的全部工具。SQLServer2008是堆栈的基础,它作为数据平台承载着数据集市或数据仓库。数据集市是一个特定于主题的数据存储。数据仓库则是一个包含多个主题的企业级数据集合。数据集市和数据仓库之间的界限是模糊的,但您不必担心这两者的区别。在本系列文章中,我将使用数据集市这个术语。(尽管本系列文章专门介绍SQLServer2008,但您只需对所提供的说明做出少量修改或不需修改,即可通过SQLServer2005及其BI组件构建一个类似的BI解决方案。)SQLServer2008包含以下三个BI组件:IntegrationServices(SSIS)、AnalysisServices(SSAS)和ReportingServices(SSRS)。这些组件分别为数据平台增加了数据集成功能、多维数据库支持和数据表示层。图1说明了在BI解决方案中这些组件之间的相互关系。图1BI解决方案中的SQLServer2008组件在设计好数据集市的物理结构之后,您可以利用SSIS将您从其他数据源中提取的数据填充到数据集市中。SSIS提供了用于自动执行数据清理、合并来自多个数据源的数据以及将数据转为适合于分析的数据结构等过程所需的工具。您可以制定计划以使用SQLServer代理定期执行这些过程。在DerekComingore文章的第31页,DerekComingore介绍了如何制定BI解决方案的提取、转换和加载(ETL)过程。将SSAS数据库添加到BI解决方案中可以支持更复杂的、高性能的交互式查询。您可以使用SSAS将关系数据复制到一个被称为多维数据集的多维数据库结构。精心设计的多维数据集可以通过在返回的查询结果中添加索引和摘要表等效功能(也称为聚合),获得远远高于关系数据库比较查询的速度,从而优化特殊查询的数据。您也可以在多维数据集中嵌入复杂的计算逻辑来简化查询,而使用关系数据源时则可能需要复制数百行Transact-SQL代码。很多前端工具(也称为多维数据集浏览器)可让您查询多维数据集而无需编写任何代码。在下个月的期刊中,ScotReagin将向您介绍如何开发一个BI解决方案的多维数据集部分。无论您将数据存储在SQLServer数据集市还是SSAS多维数据集中,您都可以将SSRS添加到解决方案体系结构中,以使用户可以获得数据。SSRS是一个报告平台,它提供了多种工具,包括用于开发报告、通过集中管理的基础结构来保护和管理已发布报告,以及用于支持用户访问报告的工具。您可以使用SSRSWeb应用程序或MicrosoftOfficeSharePointServer2007(MOSS)查看报告,使用订阅功能通过电子邮件接收报告,或是在您自己的应用程序中调用SSRSWeb服务来显示报告。默认报告视图以HTML格式显示,但您也可以将报告导出为其他文件类型,例如PDF或Excel。在下个月,我将介绍更多有关在BI解决方案的数据表示层中使用SSRS的内容。MicrosoftBI堆栈还包括一些Office技术,它们扩展了您的数据表示层选择。Excel2007是一个常见的用于支持BI解决方案中的数据分析的选择。您可以直接从Excel访问SQLServer数据集市或浏览SSAS多维数据集(如图2所示),并且可以比查看SSRS报告更加随意地浏览数据。图2使用Excel2007浏览多维数据集除了使用Excel浏览关系和多维数据之外,您还可以使用其数据挖掘算法来发现数据中的信息隐藏模式,或检测数据中的异常(这意味着您可以在填充数据集市之前修复问题)。要使用数据挖掘功能,一个很好的方法是从Microsoft下载免费的Excel加载项,然后使用它来分析您从任何数据源中导入到Excel的数据,或查看在SSAS服务器上创建并存储的数据挖掘模型的输出。Microsoft还提供了一个Visio2007加载项,用于共享批注的数据挖掘模型。有关下载和使用这些加载项的更多信息,请参阅Office2007的