数据库可以存储数据,不过用于商业决策时数据库实际上是一个非常有效的商业工具。这些决策可以是战略性决策(公司是否扩展到新的领域)、战术性决策 (哪种价格策略最佳),或者是实战型决策(我的促销对象是哪一类顾客,应当给多大的折扣)。不过,所有这些决策都需要正确的数据,要在正确的时间以正确的 格式提供。我们将这个准备、传送和解释数据的过程称为BI(business intelligence,商业智能)。

  SQL Server 2008包含一组支持BI应用开发和管理的技术。SQL Server Reporting Services和Integration Services都是BI的一部分,不过,最为关键应当是SSAS。Analysis Services包括OLAP和数据挖掘技术。OLAP和数据挖掘本身都是很重要的主题,其中数据挖掘尤其需要专门研究。因此,这一章中,我们将介绍最常 用的技术OLAP。

  所有AnalysisServices工作都可以分解为与应用管理和应用开发有关的任务。对于管理,SQL Server 2008内置了SQL Server管理包(SQLServer Management Studio)。这个工具支持应用管理,包括查看数据和创建MDX(Multidimensional Expressions,多维表达式)、DMX(Data MiningExtensions,数据挖掘扩展)以及XML for Analysis(XML/A)。对于开发,商业智能开发包(Business Intelligence Development Studio,BIDS)支持应用开发,它允许定义一个Analysis Services项目的核心组件(数据源、数据视图、维度、值、多维数据集,等等)。利用这个工具,还可以在分析环境中从多个不同的角度查看数据。

  安装SQLServer 2008时提供了一个选项,可以选择是否安装Analysis Services。还可以选择是否默认启用与Analysis Services相关的Windows服务。为了让Analysis Services正常工作,这个Windows服务必须运行。不必在开发人员的机器上运行Analysis ServicesWindows服务。最后Analysis Services会在一个生产主机上运行。开发人员可以连接到一个安装并运行着Analysis Services的服务器。为了便于开发,最简单的做法是在开发机器上本地安装和运行Analysis Services,完成开发和调试之后,再将Analysis Services项目发布到临时服务器或生产主机上。

  这一章中,我们将介绍以下主题。

  SQL Server 2008中Analysis Services的新特性;

   Analysis Services基础知识;

  OLAP概念;

  BIDS中的分析服务器项目;

  Analysis Services脚本语言。

  SQL Server 2008中Analysis Services的新特性

  SQL Server 2005 Analysis Services的用户非常急切地想知道这个最新版本有哪些新的特性。为满足这些用户,在分析Analysis Services的体系结构和帮助新用户上手使用这个令人兴奋的技术之前,我们将简要介绍一些新特性。对于刚刚涉足这个领域的新用户,这一节可能有些多 余,因为所有功能对你来说都是新的(从定义上讲),不过,通过这一节,你会了解到Analysis Services绝非一种静止的技术,而是一种微软不断发展并加入新思想的技术,这一点很有用。

  SQLServer 2008中AnalysisServices的改进可以分为三大类:对设计、监视和运行时操作的改进。

设计工具的改进

  在SQLServer 2005的Analysis Services中,Microsoft在构建OLAP数据库的设计工具的可用性方面做了显著改进。不过,用户反馈表明,用户还需要一些帮助和指导才能弄 明白如何把这些最佳实践用于他们的应用中。因此,在SQL Server 2008的Analysis Services中,现在设计体验包括全面的最佳实践警告提示。在用户界面中这些警告提示会以蓝色和红色的“弯弯曲曲”的线显示,分别提醒用户注意警告和 错误。可以认为这就像Microsoft Word环境中显示的警告来指示存在拼写或语法错误。基于这个技术,用户可以继续工作(它不需要用户执行任何操作),同时还能标志出重要的问题。在 20.4.6节中,你会看到实际显示的警告提示。

除了这些警告提示,Microsoft还大幅改进了设计器的另外一些方面。你会发现多维数据集向导(将在20.4.5节中介绍)比以前要容易得多。另外,现在的维度设计器还包括一个特殊的界面,用来开发特性关系。这也将在20.4.5节中介绍。

这 一章中,我们将描述MDX的一些基础知识,这是Analysis Services中使用的语言。对于更高水平的MDX用户,微软引入了动态命名集。命名集(named set)实际上就是数据值的一个预定义子集,如“排名前10的顾客”,这可以在表达式中使用。在SQL Server 2005中,命名集总是静态的——排名前10的顾客会在处理多维数据集时选择。这意味着运行一个类似“找出70岁以上排名前10的顾客”的查询时,实际上 会返回原来排名前10的顾客中70岁以上顾客的子集,这有可能一个顾客也找不到。利用动态命名集则可以在查询上下文中返回排名前10的顾客。因此,现在可 以很容易地动态查询排名前10的70岁以上老年顾客。

监视工具的改进

对于已经设计了多维数据集并处于生产阶段的高级用 户,SQL Server Management Studio中的新功能将有助于监视所部署的数据库的性能。可以认为这些监视功能等价于SQL Server关系数据库引擎的动态管理视图。Analysis Services管理员(使用ManagementStudio)现在可以执行类似下面这样的MDX查询:

这个结果会对服务器上运行的会话以及所使用的资源提供一个详细的视图。对于连接、会话、命令以及命令涉及的对象也存在类似的模式,这就构成了一个相当全面的资源监视解决方案。

运行时改进

  SQL Server 2008中Analysis Services的改进不只是在于用户交互方面的改进(不论是对于设计人员还是管理人员)。运行时引擎也得到了显著的改进。其中一些采用了相当高深的技术。

  例如,利用一种称为子空间(subspace)或块(block)计算的技术,可以对返回稀疏结果集的查询提供显著的性能提升。以返回所有日期所有商店的所 有商品销售情况的查询为例。通常,所有商品中只有很小的一个子集会在所有日期所有商店中销售,所以这个查询的结果会包含很多NULL(或默认)值。子空间 计算可以优化完成这个查询所需的引擎操作,有些情况下可以让性能大幅提升,查询速度加快多达20倍。

  对于高级用户来说,另一个显著的运行时改进是能够写回一个多维MOLAP(Multidimensional OLAP,OLAP)分区(而不是一个关系型OLAP分区)。如果用户要构建交互式预算和规划应用,这也将提供显著的性能提升。