29. 使用 Microsoft SQL Server 分析服务
Analysis Services概观
安装Analysis Services
使用Analysis Services
本章总结
Microsoft SQL Server 2000 Analysis Services(过去被称为 OLAP Services),是 SQL Server 2000 中设计来协助您从事 在线分析处理(online analytical processing,OLAP) 的一个组件,利用这个组件可让您在您的数据仓储与数据超市中存取与采撷资料。在本章中,您可学习到何谓 Analysis Services 组件,如何安装以及如何使用这些组件;此外,您也会学习到 SQL Server 2000 中 Analysis Service 新增的功能。由于本书主要是写给 SQL Server 管理员而非应用程序开发人员,因此我们的讨论将仅止于安装、设定与管理 Analysis Services 等主题,应用程序开发的部分则不在讨论范围之内。
________________________________________
说明
在本章中,我们可能会不断的提到 数据仓储(data warehouse) 与 资料超市(data mart) 这两个专有名词。数据仓储可以从几个不同的方向来定义,其中之一是把它视为一个商业数据的仓库,其储存了从公司 在线交易处理(online transaction processing,OLTP) 系统所获得的历史数据以及当前数据。数据超市类似于数据仓储,不过其所包含的资料仅与公司的某一方面有关。举例来说,公司可能拥有一个数据仓储,内含应付帐款、应收帐款以及人力资源等数据,以及一个数据超市,内含应付帐款资料。组成数据仓储与数据超市的数据通常被规划成星状结构描述或雪花状结构描述,这些在本章稍后都会有所说明。本章所讨论的概念大部份均能用在数据仓储与数据超市,因此除非特别说明,我们使用数据仓储来同时代表这两种数据库。
________________________________________
Analysis Services 概观
Analysis Services 是一套工具,可用来协助您开发与管理用于在线分析处理的数据。Analysis Services 由 Analysis Service 服务器、English Query 以及其它支持组件所组成。Analysis Service 服务器建构数据的 cube 协助您进行多维度分析,Cube一词是用来描述一个汇总或摘要的数据集合,藉以处理复杂的分析查询,如每月销售结果与销售计划。(Cube 会在本章稍后 〈OLAP Cubes〉 一节中详细说明。)
在多维度分析中,多个查询会从不同的观点或维度来搜寻数据库。举例来说,假设现有一个自行车商数据库,其中仍保持着去年的销售数据。在多维度分析作业中的一个查询可能正在搜寻客户购买习惯,另一个查询搜寻的却是每月销售量,同时更有一个查询找的是某一特定款式的自行车或组件的销售成绩。虽然数据是分享给所有的查询,但每个查询却以不同的观点(维度)来看待资料。
Analysis Service 组件
Analysis Services 提供了一些工具与精灵,让您可用来存取多维度资料。Analysis Service 由下列组件组成:
• 分析管理员 :提供一个 GUI 来使用 Analysis Service,如建立 Cube、管理安全性以及浏览数据来源。
• 资料仓储架构 :一组实作 SQL Server 2000 数据仓储功能的组件与 API。
• 数据转换服务(DTS) :协助加载及转换数据到数据超市或数据仓储。DTS 是由汇入精灵与汇出精灵组成,可用来迁移数据及转换数据。DTS 的细节介绍请参阅 第24章 。
• 储存机制(Repository) :包含一些接口、数据库结构描述模型,以及预先定义的数据转换方式以符合数据仓储架构。因为数据转换是建立在有规则的基础上,所以它们的定义可以储存起来,以供将来重新使用。
• 资料采撷(Data Mining) :提供了定义与实作多维度 cube 的算法。
• English Query :英文语系的问题转换为可以在数据库上执行的 SQL 陈述式。
• 延伸标记语言(XML) :提供一个标准格式化与数据呈现的语言。XML 是应用程序对应用程序之间数据转换的重要组件,并可用来将数据出版至因特网。
在本章中,我们会将这些组件组合在一起,犹如组合拼图的各个部分,藉以提供一个统合的工具。
OLAP Cube
在 Analysis Services 中资料的主要表现形式是 OLAP cube。 Cube 是详细数据以及摘要数据的多维度表现形式, 详细数据 是特定数据列的数据,而 摘要数据 是汇总数据。Cube 是基于数据自身的分析需求而设计的。每一个 cube 代表一个不同的商务实体,如销售额、存货等等。Cube 的每一个面表示资料中不同维度的情状。换言之,cube 是由数据许多不同的面向所组成,所以称为一个「数据 cube」。
Analysis Services cube 可透过两种数据库结构描述来建立:星状结构描述和雪花结构描述。 结构描述(Schemas) 事实上是一个发展中的论题,但为了适当的描述 Analysis Services,我们在这里简单的了解一下结构描述。这两种结构描述都是由事实数据表和维度数据表构成。Analysis Services 在数据表中汇总这些数据以建立 cube。让我们更详细一点来看这个过程。
事实资料表
事实数据表(fact table) 是数据仓储中储存历史数据的数据表,这些历史数据是数据仓储的核心信息。在我们的自行车商范例中,这个信息是一个发生在自行车商行的交易记录(包括数据库交易与销售交易)。这个记录内的数据涵盖了交易日期、交易类型、销售项目、交易的总金额、顾客姓名、销售员姓名等等。这个记录可用来作为多维度分析的基础。
正如您所看到的,事实数据表的数据是以商业交易为中心的数据。这些交易可以是某物品的销售、信用卡交易和利润等等。基本上,事实数据表记录着一些商业事件的类型。
数据仓储中的事实数据表是数据库中最大的数据表,并且也是操作最频繁的数据表。您可能想象得到,事实资料表可以包括数百万个记录,且能够占据超过 1TB(或 1024 GB)的空间。
维度资料表
维度数据表(dimension table) 用来定义事实数据表中的字段,例如售货员姓名、交易类型或是项目等等。这个过程与 正规化(normalization) 过程相类似,两者都是拣取有用的数据以加快处理的效率。事实数据表包含交易的历史信息,而维度数据表所包含的信息,则指出如何从事实资料表中取得有用的材料。换言之,维度资料表是用来载明事实资料表中所包含的资料的意义。
举例来说,对于一个包含着销售记录的事实数据表而言,可能有一个维度数据表包含着与销售代表有关的信息,可用来建立像是每个业务员的月份销售额这类摘要资料;而另一个维度数据表则是包含着地区信息,可用来建立每地区月份销售额这类摘要数据。
维度数据表并不像事实资料表那般庞大,相反的是维度数据表通常很小且往往仅含有几个数据列。数据仓储一般说来只会有一个到两个事实资料表,但却有好几个维度资料表。
结构描述
星状结构描述(star schema) 是相当常见的一种资料仓储架构,它由一个事实数据表和一些维度数据表组成。星状结构描述意味着一个事实数据表被维度数据表所环绕,呈一颗星的形状。每一个维度数据表相当于事实数据表中的一个资料行。这些维度数据表是用来架构分析的基础,以便我们对事实数据表中的数据进行分析。
雪花结构描述(snowflake schema) 中,几个维度资料表在联结到事实数据表之前相互联结,换句话说,先建立一些维度数据表的阶层,每一层相当于事实资料表中的一个资料行。图 29-1 显示了星状结构描述与雪花结构描述。
图29-1星状与雪花结构描述
资料汇总
Analysis Services 是以维度数据表内的数据为基础,从而建立事实数据表内数据行的汇总。举例来说,与员工相关的维度数据表可用来建立以员工为基础的销售数据摘要信息。与项目相关的维度数据表可用来建立以项目为基础的数据的摘要信息。因为汇总是基于维度数据表来建立数据的不同切面(也就是维度),所以可构造一个数据的虚拟 cube,如前所述。
由 Analysis Services 建立的 OLAP cube,本质上就是依照星状或雪花结构描述来进行计算的汇总函数。您使用 Analysis Services 精灵来建立这些汇总,进而利用汇总来建立商业模型,做出商业决策。
中继资料(Metadata)
「中继数据」是用来描述与数据相关的数据,因此,用来描述数据库数据的摘要与详细数据便被称为中继资料。以我们刚刚的例子来说,销售数据表即周围的维度数据表表现了数据的状态。我们建立的摘要信息(业务员的销售数据、各项物品的销售资料)便是中继资料。Analysis Services 的主要益处便是建立中继数据(摘要数据表或汇总)的能力,利用 Analysis Services,您可以简单地建立中继资料随后应用于各种工作,而不用很麻烦的亲手维护这些数据。
SQL Server 2000 数据分析增强功能
SQL Server 2000 在数据分析及数据仓储上提供了不少新增功能,这些新增或增强功能包括了一些工具与信息,能用来增进数据分析的处理。在本节中,您会学习到这些新增功能中最主要的部分。
数据采撷增强功能
Analysis Services 已整合了新的数据采撷技术,可用来发现关系型数据库与 OLAP cube 之间的数据关联性。这些关联性可被加入到现有的 OLAP cube 已提供额外的数据分析。其中一个独一无二的数据采撷新功能是 Microsoft Decision Tree。Microsoft Decision Tree 使用精密的分类技术与算法来分析数据,接着它会建构一或多个决策树,可用来针对新数据进行预测分析。举例来说,我们的自行车商行便可透过这项技术建构决策树来分析潜在客户的信用历史数据与交易历史数据,由此预测该客户的信用风险。
数据采撷的另一个新功能是丛集的使用。用于数据采撷的丛集技术与 第12章 中所描述的丛集类型不并相同。当 Analysis Services 执行丛集时,它会使用一种被称为最邻近法的算法将数据录分组成具有类似特性的丛集。许多时候,这些关联性都会被隐藏或不易被察觉。因此,丛集技术可以说打开了数据分析的另一扇大门。
此外,SQL Server 数据采撷组件也包含了一些新的精灵与对话框,让数据采撷变得更易于利用。这些新增功能让 DBA 在建立与维护数据超市或数据仓储时,可以更快地执行大部分相关的工作。
维度增强功能
SQL Seever 包含了数种新增的维度资料表。SQL Server 现在支持父子式维度、关系型 OLAP(ROLAP)维度以及可写入的维度。
父子式维度允许来源数据表中成员之间父子式连结的阶层架构定义。父子式关联性的一个例子是一个来自各部分的组件组合结构。父代为单一的部份,可以拥有许多的子组件,即子代。当进行数据分析时,可使用父子式维度来加强子组件与该部份的连系。
ROLAP 维度可用来解决 Analysis Services 使用的标准多维度 OLAP(MOLAP)模式的容量限制问题。MOLAP 模式允许维度可包含近乎 500 万个成员。一旦成员的成长超过了这个限度,就需要 ROLAP 维度。ROLAP 维度可成长得极为庞大,不过在查询成员集时 MOLAP 模式的效能却比 ROLAP 要好很多。因此,只有在维度非常庞大时才应定义为 ROLAP 模式。
当您使用可写入维度(write-enabled dimension)时,维度的成员可透过分析管理员以及支持回写的客户端应用程序来更新。可使用 SQL Server 角色来控制客户端应用程序对维度的写入存取。SQL Server 角色将在 第34章 介绍。
安全性增强功能
SQL Server 2000 也包含了安全性的增强功能,可针对您用于商务分析的数据提供更佳的保护,毕竟这些数据有可能相当敏感。这些新增功能包括了变更维度数据表的安全性、数据格安全功能、以及支持额外的验证技术。
维度数据表如今是在 SQL Server 的角色基础(role-based)安全性模式中进行操作。依照每一个角色的定义,您可以限制其存取个别的维度、层级及成员。此外,您也可设定这些资源的读取与读/写权限。SQL Server 2000 同时支持 FAT 及 NTFS 两种系统的角色基础安全性。
SQL Server 2000 允许您在 cube 的数据格层级实施角色。分析管理员包含了定义数据格安全性的对话框,您可以控制角色对任何 Cube 数据格组合的存取。此外,每个角色的读取与读/写权限可以不同。
由于 SQL Server 2000 包括了 Windows 2000 安全性模式,当使用者或应用程序需要存取 cube 及其数据时,SQL Server 2000 支持 Kerberos 通讯协议、NT License Manager Security Support Provider、或是其它任何使用 安全性使用者提供接口(Security Support Provider Interface,SSPI) 的提供者来执行验证动作。这让您可以在 SQL Server 安装的所有层级上均有整体一致的安全性。
English Query 增强功能
在 SQL Server 2000 中 English Query 的功能已经增强,可更完整的整合 Microsoft Visual Studio 6.0 等套装产品。English Query 让程序开发人员可以将英文叙述整合到应用程序中,而不是 T-SQL 陈述式。此外,新的图形化使用者接口工具也对开发 English Query 陈述式提供了相当大的帮助。SQL Server 还内含了 SQL 项目精灵,可自动地建立基础数据库结构以支持 English Query,让 English Query 环境更易于设定与使用。这个精灵会扫描数据库的数据表并建立相关的 SQL Server 组件。
安装 Analysis Services
Analysis Services 是 SQL Server 2000 的一个组件,要安装 Analysis Services,请遵循下列步骤:
1. 从装选单中,按一下 SQL Server 2000的组件 ,然后按一下 安装 Analysis Services ,出现欢迎画面。
2. 按 下一步 进入 软件授权合约 对话框。在您阅读并同意该授权之后,按 是 。
3. 出现 选择组件 对话框,如图 29-2。在这个对话框中,您可以选择您要安装的 Analysis Services 组件。按一下每个组件名称前的复选框以选择所有的组件。如果组件之前已经完成安装,您将无法改变它复选框的状态。要选择新的位置来安装 Analysis Services,请按 浏览 。在您选好目的数据夹后,按 下一步 。
图29-2「选择组件」对话框
4. 出现 储存数据的数据夹位置 对话框,如图 29-3。这个对话框与 选择目的数据夹 对话框很类似,不过,此处您要选择的是储存数据的数据夹位置。您可以按 浏览 来指定一个有别于默认值的位置。在您选好数据的数据夹位置后,按 下一步 。
图29-3「储存数据的数据夹位置」对话框
5. 出现 选择程序数据夹 对话框,如图 29-4。此处您可以选择要放置 Analysis Services 的程序数据夹(也就是开始菜单上 Analysis Services 出现的位置)。默认值一般说来都可以接受。按 下一步 完成安装。
图29-4「选择程序数据夹」对话框
在您完成 Analysis Services 的安装后,可以安装 English Query。虽然 English Query 可以说是 Analysis Services 整体服务的一部分,不过它们的安装却是分开的。您并不一定要安装 English Query 才能使用 Analysis Services。要安装 English Query,请遵循下列步骤:
1. 从 SQL Server 2000 安装选单中,按一下 SQL Server 2000 的组件 ,然后按一下 安装 English Query 。安装程序会先安装 Microsoft Data Access Components (MDAC) 及 Microsoft Visual Studio 组件。在这些组件完成安装后,会出现欢迎画面。按 Continue 继续安装。
2. 出现 Microsoft English Query 2000 的软件授权合约对话框。在您阅读同意后,按 I Agree 。
3. 出现 Microsoft English Query 2000 Setup 对话框,如图 29-5。此处您可选择您需要的安装类型- Complete 或 Run-time Only 。 Complete 会安装所有的组件, Run-time Only 则允许您指定要安装哪些组件。您也可以指定安装的数据夹,不过预设数据夹通常可以接受。除非您是 English Query 的专家,否则按 Complete 即可。接着会安装 English Query Components 组件。按 OK 完成安装。
图29-5「Microsoft English Query 2000 Setup」 对话框
在您完成安装后,若要使用 Analysis Services 及 English Query元 件,请按 开始 / 程序集 / Microsoft SQL Server / Analysis Services 。在 Analysis Services 的子目录中,您有下列 3 个选项:
• 分析管理员 :启用 Analysis Services 的主要组件。这个组件包括了一些精灵与公用程序,可让您开始 Analysis Services 服务。
• 在线丛书 :启用 Analysis Services 在线文件。
• MDX Sample Application :启用 Analysis Services 提供的一个应用程序范例。
使用 Analysis Services
现在我们已介绍了 Analysis Services 及其安装的程序,接着让我们来看一下如何使用它所提供的服务来建立并管理您的数据仓储。在本节中,我们要先设定一个数据来源,接着在该数据来源上建立一个 OLAP 数据库,最后在数据库上建立一个 cube。
设定数据来源
要将 Analysis Services 连接至 SQL Server 数据库,首要步骤是为服务器设定一个 ODBC 系统数据来源。您可以利用 系统管理工具 中的 ODBD 数据来源 公用程序来完成这个工作。要设定系统数据来源,遵循下列步骤:
1. 按 开始 / 程序集 / 系统管理工具 / 数据来源(ODBC) ,出现 ODBC 数据来源管理员 对话框,如图 29-6。
图29-6「ODBC 数据来源管理员」对话框
2. 按一下 系统数据来源名称 卷标,如图 29-7,您会发现在 系统数据来源 方块中列出了一些已有的数据来源清单。这些数据来源中有些已定义为联机至 SQL Server。依数据库使用方式的不同,有时我们会需要多个 ODBC 数据来源参照同一个数据库,这当然是允许的。在本例中,我们要建立一个参照 Northwind 数据库的 ODBC 数据来源。
图29-7「ODBC 数据来源管理员」的「系统数据来源名称」卷标
3. 按一下 新增 ,出现 建立新数据来源 对话框,如图 29-8。在选单方块中,选择 SQL Server ,然后按 完成 。
图29-8「建立新数据来源」对话框
4. 出现 建立新的数据来源至 SQL Server 对话框,如图 29-9。此处您必须给定数据来源的名称,并给予说明,且须指定要联机的 SQL Server。按 下一步 继续。
图29-9「建立新的数据来源至 SQL Server」对话框
5. 接下来的对话框如图 29-10,您可指定当使用者联机至 SQL Server 时要采用的验证模式。您可选择 以网络登入识别码进行 Windows NT 认证 或是 以登入识别码及由使用者输入密码进行 SQL Server 认证 。(使用者验证模式在 第34章 中介绍。)在对话框下方,您会看到一个预设为选取的复选框。如果您不需要在此时联机至 SQL Server 以获得其它选项的预设设定,将复选框改为不选取的状态。按 下一步 继续。
图29-10指定验证模式
6. 接下来的对话框如图 29-11,您可指定要使用的数据库、数据库名称及 ANSI 模式。Analysis Services 会允许您选择所要联机的数据库,因此并不需要提供一个预设的数据库名称。不过,指定一个预设数据库并不会有什么大碍,因为其它的应用程序也有可能会用到这个数据来源名称(DSN)。当您完成后,按 下一步 。
图29-11指定预设数据库
7. 接下来的对话框如图 29-12,您可以变更 SQL Server 系统讯息的语言为其它的语言,开启转译功能,指定地区设定,指定长时间执行的查询及驱动程序统计数据的记录文件位置。当您完成设定后,按 完成 。
图29-12指定语言及其它设定
8. 出现 ODBC Microsoft SQL Server 设定 对话框,如图 29-13。这个对话框说明了将会建立一个新的 ODBC 数据来源并列出您为该数据来源所选择的所有设定。
图29-13「ODBC Microsoft SQL Server 设定」摘要对话框
9. 您应该按 测试数据来源 以测试一下您的设定。当您按下后,就会开始测试到数据库的联机。一旦您成功地完成联机测试,按 确定 ,则这个 DSN 就可开始使用。
________________________________________
说明
SQL Server 必须处于执行的状态才可以设定并测试资料来源。
________________________________________
建立 OLAP 数据库
现在您已设定并测试了 ODBC 资料来源,接着可以准备来建立一个 OLAP 数据库。建立 OLAP 数据库也包括将一个现存的数据库设定为 OLAP 数据库。您必须准备指定哪些数据表要用来作为事实资料表,哪些要作为维度资料表。
________________________________________
说明
在本节中,我们会将 Northwind 数据库设定为一个 OLAP 数据库。这个数据库并不具有数据超市或是数据仓储的所有属性,不过我们会利用它来作示范,因为它是内建于 SQL Server,并且这个示范过程可以简单地让您套用在实际应用之中。
________________________________________
在建立 OLAP 数据库的过程中,您会用到分析管理员、Cube 建立精灵、维度建立精灵以及储存设计精灵。要建立该数据库,遵循下列步骤:
1. 按 开始 / 程序集 / Microsoft SQL Server / Analysis Services / 分析管理员 ,出现 分析管理员 窗口,如图 29-14。
图29-14「分析管理员」窗口
2. 在左边窗格中展开 Analysis Servers 数据夹,然后展开您的服务器名称数据夹。在服务器名称上按鼠标右键,并在快捷菜单中选择 新增数据库 ,出现 数据库 对话框,如图 29-15。请输入数据库名称并给它一个简介说明。在本例中,我们将数据库命名为 Northwind_OLAP 。
图29-15「数据库」对话框
________________________________________
说明
当您展开您的服务器名称数据夹时,会发现分析管理员中已安装了一个范例数据库。如果您在安装 Analysis Services 的过程时,在 选择安装组件 对话框中有选取 范例应用程序 复选框的话,就会自动安装这个名为 FoodMart 2000 的数据库。
________________________________________
3. 按 确定 回到分析管理员窗口。如果您展开 Analysis Servers 数据夹并展开您的服务器名称数据夹,会看到一个新的数据库已被新增进去。(这个数据库已经命名,不过尚未联机至 SQL Server 数据来源,不过别紧张,我们等一下就会开始联机。)展开数据库数据夹(在本例为 Northwind_OLAP 数据夹)可显示数据来源、Cube、共享维度、采撷模型及数据库角色,如图 29-16。
图29-16展开 OLAP 数据库
4. 在 Cube 数据夹上按鼠标右键,在快捷菜单中将光标移到 新增 Cube ,并在子选单中选择 精灵 。出现 Cube 建立精灵 欢迎画面,如图 29-17。这个精灵是用来选择要在 Cube 层级上指定的数据来源。
图29-17「Cube 建立精灵」的欢迎画面
5. 按 下一步 出现 从数据来源选择一个事实数据表 画面,如图 29-18。要选择 SQL Server 数据库,按 新增数据来源 。
图29-18「从数据来源选择一个事实数据表」画面
6. 出现 数据链路内容 窗口,如图 29-19。您可在 提供者 标签中为这个 cube 指定数据来源;不过,在本例中我们要使用 联机 标签来选择我们刚才建立的数据来源。
图29-19「数据链路内容」窗口的「提供者」标签
7. 在 数据链路内容 窗口的 联机 卷标(图29-20)中选择数据来源名称(本例为 DataSourceExample),键入联机使用者名称与密码,并输入要使用的初始目录。如果您没有管理员密码(如果您在网络上应该会有),选取 空白密码 复选框。
图29-20「数据链路内容」窗口的「联机」卷标
8. 此时您应按一下 测试联机 来测试联机状况。如果测试成功,会有一个联机成功的讯息,如果测试失败,您可能有些部分的输入错误。在联机测试成功后,按 确定 回到 Cube 建立精灵 的 从数据来源选择一个事实数据表 画面,如图 29-21。
图29-21已有数据来源及数据表的「Cube 建立精灵」之「从数据来源选择一个事实数据表」画面
9. 在这个画面的 数据来源和数据表 清单中,在您要用来作为 cube 数据来源的数据表上按两下。在本例中,我们在 Orders 数据表上按两下,即使 Orders 资料表实际上并不是一个事实资料表,不过它已经很接近。(此处选择这个资料表主要是让一般使用者可以透过这个范例来练习操作。)
10. 按 下一步 出现 选择定义量值的数字数据行 画面,如图 29-22。此处您可选择一个或一个以上的数据行,以定义为 cube 的数字量值;在汇总时会用到这些资料行。在本例中,选择 OrderID 与 Freight ,您可在这两个数据行上按两下或是按一下向右的箭头选择这两个数据行。
图29-22「选择定义量值的数字数据行」画面
11. 按 下一步 出现 选择 cube 的维度 画面,如图 29-23。此处您可选择要用于 cube 的维度数据表。在本例中,我们要建立一个维度数据表。
图29-23「选择 cube 的维度」画面
12. 按 新增维度 出现 维度建立精灵 欢迎画面,如图 29-24。
图29-24「维度建立精灵」欢迎画面
13. 按 下一步 继续。出现 选择要如何建立维度 画面,如图 29-25。在这个画面中,您可指定要建立维度的方式。您可选择星状结构描述、雪花结构描述、父子式关联、虚拟维度、或是采撷模型。在本例中,选择星状结构描述。
图29-25「选择要如何建立维度」画面
14. 按 下一步 出现 选择维度数据表 画面,如图 29-26。本例中我们选择 Employees 数据表作为维度数据表。
图29-26「选择维度数据表」画面
15. 按 下一步 出现 选择维度类型 画面,如图 29-27。此处您可选择要使用标准维度还是时间维度。在本例中我们选择 标准维度 。
图29-27「选择维度类型」画面
16. 按 下一步 出现 选择维度的层级 画面,如图 29-28。在这个画面中,您可选取数个汇总的层级,不过在这个简单的范例中我们只选取一个层级- Employee Id 。要选择一个层级,可以在要选取的数据行上按两下,或是先选取数据行然后按向右的箭头。
17. 按 下一步 出现 指定成员索引键数据行 画面,如图 29-29。如果您是从多个数据表建立 cube,可在此处指定数据表索引键数据行。
图29-28「选择维度的层级」画面
图29-29「指定成员索引键数据行」画面
18. 按 下一步 出现 选择进阶选项 画面,如图 29-30。此处您可变更维度、指定成员的排序方式、以及定义储存模式。如果您正在建立的 cube 非常庞大,您应指定 ROLAP 储存模式,就如本章之前所讨论的一般。如果您选取了其中任何一个选项,精灵就会显示出适当的画面来帮助您做决定。此处我们不讨论这些画面。
图29-30「选择进阶选项」画面
19. 按 下一步 出现 完成维度建立精灵 画面,如图 29-31。为维度命名后按 完成 。
图29-31「完成维度建立精灵」画面
20. 一旦您完成了 维度建立精灵 ,就会回到 Cube 建立精灵 的 选择 cube 的维度 画面(如刚刚的图 29-23 所示),新的维度会出现在 Cube 维度 方块中。在此处,您可选取要用来在事实数据表上建立摘要数据的维度数据表,或是按 新增维度 执行 维度建立精灵 继续建立更多的维度数据表。
按 下一步 继续。如果出现讯息问您是否要计算数据行,按 是 。接着会出现 完成 Cube 建立精灵 画面,如图 29-32。为 cube 命名后按 完成 即可将我们在精灵中所做的一切设定保留下来。
图29-32「完成 Cube 建立精灵」画面
21. 按 完成 后会带您到 Cube 编辑器 窗口,如图 29-33。依照需求来编辑 cube,或是按关闭按钮来离开 Cube 编辑器 窗口。一般说来编辑动作并不需要。
图29-33「Cube 编辑器」窗口
22. 当您离开 Cube 编辑器 窗口时,会出现一个讯息问您是否要为这个 cube 建立储存体选项,请按 是 ,会出现 储存体设计精灵 欢迎画面,如图 29-34。
图29-34「储存体设计精灵」欢迎画面
23. 按 下一步 出现 选择数据储存类型 画面,如图 29-35。此处您可指定数据储存体为多维度、关系型还是使用两种数据型态合并的方式,本例中我们选择 MOLAP 将数据储存在 Analysis Services 的数据结构中。如果您选择关系型OLAP(ROLAP),新的数据表就会储存在您工作的数据库中(本例为 Northwind 数据库)。最后一个选项是 HOLAP(混合式 OLAP),若选取这个选项则数据会留在关系型数据表中,汇总储存于多维度结构中。
图29-35「选择数据储存类型」画面
24. 按 下一步 出现 设定汇总选项 画面,如图 29-36。此处您可指定尽力汇总的方式。在本例中,接受默认值 100MB,按 开始 建立汇总。
图29-36「设定汇总选项」画面
由于我们在本例中使用的数据表相当小,因此计算汇总只需要几秒钟。汇总结果会被绘制成图表, 设定汇总选项 画面也会再度出现(如图 29-37)。注意在本例中我们还没有作更多的制图,所以这个曲线图只是图表上左侧的一根垂直线。
图29-37已绘制汇总图表的「设定汇总选项」画面
25. 按 下一步 出现 完成设计体精灵 画面,如图 29-38。此处您可指定立即完成 储存体设计精灵 或保存设定并等待一些时间。如果您想等到工作时间之后,系统处于低负载时再来建立储存体,这个选项就很有用。在本例中,我们选择 立即处理 。
图29-38「完成设计体精灵」画面
26. 按 完成 。出现 处理 对话框,如图 29-39。建立 cube 储存体的作业完成后,画面底部会出现一个讯息,告诉您处理程序已成功地完成了。按 关闭 结束这个程序。
图29-39「处理」对话框
修改现存的 OLAP 数据库
您可以利用与上述类似的方法,透过分析管理员来修改一个 OLAP 数据库。在本节中,我们将修改 FoodMart 2000 数据库。FoodMart 2000 数据库是 Analysis Services 安装的一部分(如果您在安装过程中有选取 范例应用程序 复选框的话)。要在 FoodMart 2000 数据库中编辑 cube,遵循下列步骤:
1. 在 分析管理员 窗口中,展开 Analysis Servers 数据夹,展开您的服务器,展开 FoodMart 2000 数据夹,然后展开 Cubes 资料夹,如图 29-40 所示。
图29-40「分析管理员」窗口
2. 在 Sales 数据夹上按鼠标右键,然后从快捷菜单中选择 编辑 。这会开启 Cube 编辑器 窗口,如图 29-41。这个窗口显示了该 cube 中维度数据表与事实数据表的关联性。
在 Cube 编辑器 窗口中,您可使用列选项来编辑 cube:
o 新增维度 :您可在 维度 数据夹或左边窗格中任何一个维度名称上按鼠标右键,并在快捷菜单中选择 现有的维度 ,即可开启 维度管理员 。 维度管理员 类似于您在本章之前看到的 维度建立精灵 ,可用来新增维度或移除现有的维度。
o 移除维度 :您可以在要移除的维度名称上按鼠标右键并选择 移除 ,如此便可将维度从数据库中永久移除。
o 新增、删除或重新命名量值 :在量值名称上按鼠标右键选择 新增量值 、 删除 或 重新命名 。
o 增导出成员 :在 导出成员 数据夹或任一个导出成员名称上按鼠标右键,选择 新增导出成员 。
o 编辑、删除、重新命名导出成员 :在导出成员名称上按鼠标右键并选择 编辑 、 删除 或 重新命名 。
在右边窗格的 结构描述 卷标中,您可在维度数据表或事实数据表的标题上按鼠标右键,选择下列选项:
o 插入数据表 允许您将数据表新增至数据库。
o 变更别名 允许您重新命名现有的 cube 属性。您可以定义一个以其它 cube 属性为基础来取得的 cube 属性,而不需要改变基础的属性。
o 浏览数据 允许您撷取数据表的数据来进行检视。
o 取代 允许您选择不同的数据表来取代已存在数据库中的数据表。
o 移除(仅有维度数据表) 允许您从数据库中移除维度数据表。
图29-41「Cube 编辑器」窗口
3. 在 检视 菜单中选择 数据 ,或是在右边窗格中按一下 数据 卷标,可以看得到 OLAP 系统真正的用处。如图 29-42所示,在 Cube 编辑器 窗口的 数据 卷标上,有数个下拉式选单,透过选取这些选单,便可观察以该标准为基础而取得的摘要数据。这些选单是基于 cube 中的维度来建立。 数据 卷标类似于本章稍后会提到的 Cube 浏览器 对话框。
在这个标签中,您可以选取不同的变量组合以达成对数据的不同分析角度。因为摘要资料已经被计算过,所以可以立即得到结果。如果摘要数据无法使用,您将必须执行个别查询。在一个大型的数据超市或数据仓储中,计算汇总可能会需要一段相当可观的时间。
图29-42「Cube 编辑器」窗口的数据卷标页
处理数据
一旦您建立了 cube,就可以有数个选项让您用来检视及处理数据。这些服务之中,很多可以透过在分析管理员左边窗格中的 cube 名称上按鼠标右键来达成。这些选项包括下列各项:
• 处理 用于更新汇总。当基础数据有所变更时,汇总并不会自动更新,所以必须定期的更新它们。这个处理可能很花时间,因此应当排定执行的周期表(夜间、周末等等)。
• 设计储存体 开启 储存体设计精灵 。允许您修正 OLAP cubes 的基本储存体属性。在本章稍早您已经学习过如何使用 储存体设计精灵 。
• 使用状况最佳化 开启 使用状况最佳化精灵 ,可帮这您基于已经执行的查询历史记录来改善汇总,进而调校 cube。您可以透过检视已经在数据库上执行的查询,并将那些查询最佳化以完成这个工作。 使用状况最佳化精灵 会提供一些建议方法来修改那些查询或对它们自身进行汇总。
• 浏览数据 让您可以检视汇总。 浏览数据 选项会开启 Cube 浏览器 对话框,如图 29-34 所示的 FoodMart 2000 数据库范例。您可以看到,它和 Cube 编辑器 窗口的 数据 卷标很类似。在 Cube 浏览器 对话框中,您可以很容易地利用 cube 储存的汇总建立自订的结果集。
• 使用状况分析 开启 使用状况分析精灵 ,让您可以分析那些送往 cube 的查询。 使用状况分析精灵 使用的查询数据,是基于您的标准在 cube 上执行的查询。这个精灵和 使用状况最佳化精灵 很相似,允许您选择基准以判定哪个查询占用的时间最长;不过 使用状况分析精灵 只用来检视数据。
Analysis Services 并不会自动更新 OLAP cube,且基础数据会有所变更,所以您必须依照您的需求来决定更新的频率,定期为系统更新这些 cube。如果数据更改的很频繁并且使用者需要最新的信息,您可能就必须不断地更新 cube。如果昨天的数据尚可接受,那么每夜一次更新也许就足够了。
您可以在 OLAP 数据库的 Cube 数据夹上按鼠标右键,并选择 处理所有的 cube ,如此便可更新所有的 cube。一如之前所说的,如果您要个别更新 cube,可在 cube 名称上按鼠标右键并在快捷菜单中选择 处理 。
SQL Server OLAP cubes 不但能透过一个 OLE DB 应用程序来存取,也可以透过分析管理员来检视资料,或者设定一个到 OLAP 数据库的连结。分析管理员的 Cube 浏览器 对话框是一个很有用的工具,可让您基于已建立的 cube 来检视数据。
图29-43「Cube 浏览器」对话框
不过,如果您已有一个已经在运作的数据超市或数据仓储,您可能会发现要将 SQL Server Analysis Services 合并到您现有的工作中有点困难,因为 Analysis Services 必须先基于您使用的数据库来建立一个新的数据 cube 才能顺利工作,并且也须经由一个 OLE DB 接口来存取。如果您现在的应用程序不使用 OLE DB,可能就会无法利用这些服务。
如果您需要做多维度分析,Analysis Services 在许多不同类型的数据仓储和数据超市中会是非常有用的。从这些汇总中,您可以使用分析管理员的 Cube 浏览器 对话框来执行多维度分析。您可依照企业的需求,来决定是否利用 Analysis Services 的服务。
本章总结
在本章中,您学习了何谓 Analysis Services,以及如何设定它;也学习到如何建立 cube,以及如何在 SQL Server 数据库中维护汇总。本章所讨论的信息应该有助于您决定 Analysis Services 是否对您有用。在下一章中,您会学习到与 SQL Server 管理相关的工具与任务。