SQL Server 2005的商务智能和数据仓库

网络整理 - 07-27
摘要:本文概述了 SQL Server 2005 Beta 2 中“商务智能”平台的增强功能。本文并非实施指南,而是为读者提供了关于“商务智能”平台增强功能的信息。

  本页内容

  简介

  SQL Server2005 Beta 2 入门

  关系型数据仓库

  提取、转换和加载 (ETL)

  Analysis Services

  Reporting Services

  总结

  附录 A:代码示例

  简介

  Microsoft SQL Server 2005 是一个完整的商务智能 (BI) 平台,其中为用户提供了可用于构建典型和创新的分析应用程序所需的各种特性、工具和功能。本文简要介绍了您在构建分析应用程序时将要用到的一些工具,并着重介绍了一些新增功能,这些新增功能使复杂 BI 系统的构建和管理比以往更加轻松。

  下表概述了商务智能系统的组件,以及与之相应的 Microsoft SQL Server 2000 和 SQL Server 2005 组件。

组件SQL Server 2000SQL Server 2005

提取、转换和加载数据转换服务 (DTS)数据转换服务 (DTS)

关系数据仓库SQL Server 2000 关系数据库SQL Server 2005 关系数据库

多维数据库SQL Server 2000 Analysis ServicesSQL Server 2005 Analysis Services

数据挖掘SQL Server 2000 Analysis ServicesSQL Server 2005 Analysis Services

托管报告SQL Server 2000 Reporting ServicesSQL Server 2005 Reporting Services

特殊查询和分析Microsoft Office 产品(Excel、Office Web Components、Data Analyzer、Sharepoint Portal)Microsoft Office 产品(Excel、Office Web Components、Data Analyzer、Sharepoint Portal)

数据库开发工具SQL Server 2000 企业管理器、分析管理器、查询分析器,以及各种其他工具SQL Server 2005 Business Intelligence Development Studio (新增!)

数据库管理工具企业管理器、分析管理器SQL Server 2005 SQL Server Management Studio (新增!)

  SQL Server 2005 新增了两个组件:SQL Server Management Studio 和 SQL Server Business Intelligence Development Studio。其他主要的 BI 组件——DTS、Analysis Services OLAP、Analysis Services Data Mining 和 Reporting Services——在 SQL Server 2005 中得到了改进,与以前有很大的不同。SQL Server 2005 关系数据库包含一些重要的新增功能。虽然 Microsoft Office 查询和门户工具并没有包含在 SQL Server 中,但当前的发行版本力争在 SQL Server 2005 之前实现这一功能。Office 工具的 BI 功能将在 Office 产品发行周期内将得到逐步实现。 

  SQL Server 2005 Business Intelligence 工具集提供了一种端到端的 BI 应用程序集成:

  •设计:Business Intelligence Development Studio 是第一款专门为商务智能系统开发人员设计的集成开发环境。Business Intelligence Development Studio 构建于 Visual Studio 2005 技术之上,它为 BI 系统开发人员提供了一个丰富、完整的专业开发平台。调试、源代码控制以及脚本和代码的开发均可用于所有的 BI 应用程序组件。

  •合成:“数据转换服务”已被重新编写,现在的 DTS 可以高速执行超大数据量的复杂数据集成、转换和合成。Business Intelligence Development Studio 使程序包的构建和调试变得更加生动有趣。DTS、Analysis Services 和 Reporting Services 共同提供了一个源自异类源的无缝数据视图。

  •存储:在 SQL Server 2005 中,关系数据库和多维数据库之间的界限变得更加模糊。您可以将数据库存储在关系数据库、多维数据库中,或使用新增的“主动缓存”功能,充分利用两种数据库各自的优点。

  •分析:一直以来,Microsoft 的数据挖掘都十分简单易用。现在,结合了其他的重要新算法(包括关联规则、时间序列、回归树、序列群集、神经网络和贝叶斯算法),使得这一功能更加完美。而在 Analysis Services 多维数据集中也添加了一些重要的新增功能:关键绩效指标框架、MDX 脚本,以及其他的内置高级业务分析方法。Reporting Services 报告提交和管理框架使得复杂的分析方法更易于向最广泛的潜在受众分发。

  •交付:Reporting Services 将 Microsoft Business Intelligence 平台的用户群体延伸至那些需要使用分析功能的商务用户。Reporting Services 是一种企业托管报告环境,它通过 web 服务进行嵌入和管理。您可以用大量的交互和打印选项,以各种不同的格式个性化设置和提交报告。通过将报告以数据源的形式分发至下游商务智能,复杂分析可以覆盖更广泛的受众。Microsoft 及其合作伙伴的特殊查询和分析工具将继续承担在 Analysis Services 和关系数据库中访问数据的常用工具角色。

  •管理:SQL Server Management Studio 集成了对 SQL Server 2005 所有组件的管理。Business Intelligence 从业者都将得益于 Microsoft 服务器“能力”扩展这一用户盼望已久的功能增强,即从关系引擎(伸缩性、可靠性、可用性、可编程性,等等)扩展为全套的 BI 平台组件。

  SQL Server 2005 Business Intelligence 组件的主要目标是支持在各种规模的企业中开发和使用商务智能,并使其能够供所有员工使用,不仅包括管理层和分析师,还包括操作人员和外部委托人。就此目标而言,SQL Server 2005 具有完整、集成、易用的特点,它以 web 服务的形式发布数据,而且仅通过日常硬件便可提供极佳的性能,另外它还包含许多新增功能,您可以使用这些新增功能开发创新的分析应用程序。

  SQL Server2005 Beta 2 入门

  在安装 SQL Server 2005 时第一点要注意的就是它的集成安装体验。您不再需要为某些功能(如 Analysis Services)而分别运行安装程序。如果某个功能(如 Reporting Services)不可安装,则说明您的计算机不满足该功能的安装要求。您可以查看说明文件,以获得有关功能必要条件的完整讨论。在大多数配置得当的机器上,安装过程中应接受所有默认设置,安装所有的主要功能:

  •SQL Server 关系数据库引擎

  •DTS

  •Analysis Services

  •Reporting Services

  •SQL Server Management Studio(数据库管理工具集)

  •Business Intelligence Development Studio(BI 应用程序开发工具集)

  Reporting Services 要求在机器上安装并妥善配置 IIS。由于 Reporting Services 是 2005 Business Intelligence 功能组的一个重要组成部分,我们强烈建议您花费一定的时间,执行这些配置和安装步骤。

  熟悉 Analysis Services 的客户可能会因缺少 Analysis Services 元数据仓库而感到迷惑。在 SQL Server 2000 中,Analysis Services 仓库被作为 Microsoft Access 数据库发行。Analysis Services 2005 不包含元数据仓库。相反,Analysis Services 数据库元数据信息被存储为 XML 文件格式,由 Analysis Services 进行管理。如果需要,还可以将这些 XML 文件放置在源代码控制之下。

  我们建议您使用 Business Intelligence Development Studio 进行开发,同时使用 SQL Server Management Studio 来操作和维护 BI 数据库对象。虽然您能够在 SQL Server Management Studio 中设置 DTS 包以及 Analysis Services 多维数据集和数据挖掘模型,但 Business Intelligence Development Studio 却为设计和调试 BI 应用程序提供了更好的体验。

  对于 Beta 2 而言,建议您从掌握新的应用程序入手,因为与升级现有 DTS 包或 Analysis Services 数据库相比,这样可以学到更多东西。如果您已有一个可用的包或数据库,您会发现,“重新创建”现有的包或数据会十分有用。在您熟悉了这些新增工具、功能和概念之后,便可试着升级现有对象。

  许多客户都借助 SQL Server 工具,使用熟悉的来自一个或多个源系统的商务智能结构来开发新的系统,使用 DTS 填充维度关系型数据仓库,然后再用数据仓库来填充 Analysis Services 数据库。但是,SQL Server 2005 提供了许多选项,通过消除或淡化不同的组件使其背离了这种一般化设计。

  关系型数据仓库

  SQL Server 2005 关系数据库引擎包含一些对数据仓库样式应用程序设计和维护大有帮助的功能。这些功能包括:

  •对于超大型的表而言,表分区可快速数据的加载速度,并简化维护过程。

  •轻松创建报告服务器

  •Transact-SQL 方面的改进包括新增的数据类型和新增的分析功能

  •联机索引操作

  •细化备份/还原操作

  •快速初始化文件

  报告服务器

  要想将关系操作报告从事务处理数据库中分离出来,经常采用的一项技术便是维护一台报告服务器。报告服务器对事务处理数据库映像的维护一般都有一定的时间延迟,通常截止到前一天。报告服务器多用于报告功能和数据仓库提取。

  Microsoft SQL Server 2005 新增了两项功能,使报告服务器的创建和维护过程变得更加简单。SQL Server 报告服务器的延迟时间与以前相比大大缩短。同时,报告服务器被设计为充当事务处理系统的备选系统。

  要创建报告服务器,先要创建一个数据库镜像,这是 SQL Server 2005 的新增功能,它为系统的高可用性提供了一个紧急备用系统。更多信息,请阅读联机丛书的“数据库镜像概念”主题。数据库镜像不能够直接查询,这时第二个新增功能就能派上用场了。

  在镜像上创建一个数据库视图。数据库视图是数据库在某个时点的只读副本。数据库视图并非数据库的完整副本;极为节省空间。多个数据库视图还是可以同时共存,虽然维护数据库视图会对数据库视图所基于的事务处理数据库产生一定的影响。更多信息,请阅读联机丛书的“了解数据库视图”主题。

  通过在数据库镜像上创建数据库视图,您可轻松为系统的高可用性创建备用服务器,此服务器还可用作报告服务器,起着双重作用。

  表分区

  分区表和分区索引将数据分割到多个水平单元中,以便于将行组映射到单独的分区中。而对数据执行操作(如查询)时,又可以将整个表或索引作为一个整体来执行。

  分区可以:

  •改善数据表和索引的可管理性。

  •改善多 CPU 机器上的查询性能。

  在关系型数据仓库中,事实数据表比较适合应用表分区,而按日期范围分区又是最常见的分区策略。

  正如联机从书的“创建分区表和索引”主题中所描述的,定义分区表可分为三个步骤:

  1.创建一个分区函数,指定使用此函数的表如何分区。

  2.创建一个分区方案,指定应用此分区函数的分区在文件组上的位置。

  3.使用此分区方案创建一个表或索引。

  多个表可以使用同一个分区方案。

  本文讨论了事实数据表的“范围”分区,但其目的并非是针对表分区的完整讨论或教程。有兴趣的读者请参阅 SQL Server 联机丛书。

  最常用的分区方案是按日期范围(如年、季、月或甚至天)对事实数据表进行分区。在大多数情况下,对大型事实数据表进行日期分区可以提供良好的可管理性收益。为了改善查询性能,应尽量使用相同的分区方案对时间维度表进行分区。

  •分区表和未分区表的行为方式相同。

  •针对表的查询能够得到正确解析。

  •针对表的直接插入、更新和删除会被自动解析到适当的分区。

  使用数据表分区快速加载数据

  许多数据仓库应用程序都力求在越来越小的加载窗口中加载越来越多的数据量。典型的流程是这样的,先从几个源系统中提取数据开始,接下来便是在这些系统间清理、转换、合成和合理化数据。数据管理应用程序被限制为在加载窗口中完成整个提取、转换和加载流程。通常,系统的业务用户都强烈要求将数据仓库查询时的不可用时间降至最低。在设计时,数据管理应用程序的“写入”步骤(即将新数据插入到现有数据仓库的步骤)必须在短时间内完成,且要最小化对用户造成的影响。

  为了非常快速地加载数据,数据库恢复模型必须为“批量记录”恢复模式或“简单”恢复模式,而数据表必须为空,或是包含数据但不包含索引。如果满足这些条件,不作记录的加载便成为可能。在 SQL Server 2000 中,分区表出现以前,这些条件通常只在初始历史数据仓库加载中才能满足。一些具有大型数据仓库的客户已通过在分散的物理表上搭建 UNION ALL 视图,构建了一个准分区结构;这些数据表都使用不记录技术填充每个加载周期。这一方法并不尽如人意,而 SQL Server 2005 分区表则提供了更为优秀的功能。

  在 SQL Server 2005 中,您不能直接在分区中执行不记录加载。但是,却可以将数据加载到将调用伪分区的单独表中。在特定条件下,您可以用执行速度极快的元数据操作将伪分区切换到分区表中。此技术可满足我们的两个要求:

  •最小化整体加载时间:在不作记录的情况下执行伪分区加载,以及

  •最小化对最终用户的影响,并确保数据仓库的完整性:伪分区可以在用户查询数据仓库时被加载。在执行分区切换之前,数据管理应用程序会等到所有事实数据表全部加载完毕为止。分区切换的执行速度非常快,反应时间通常不到一秒。

  此外,伪分区还可作为单独的表进行备份,从而改善系统的可管理性。

  使用表分区快速删除数据

  许多数据仓库在数据仓库中保留了一个详细活动数据的滑动窗口。例如,事实数据表可能包含三年、五年或十年的数据。每到一个时间周期,便从数据表中删除最旧的数据。持续删除数据的主要原因在于要提高查询性能并最小化存储成本。

  SQL Server 2005 分区使大型分区事实数据表中旧数据的删除倍加轻松。如上所述,简单地创建一个空白伪分区,然后将其切换到分区表中。分区表在其曾植入分区的地方有一个空白分区;伪分区在其曾为空白的地方包含数据。用户可以根据需要对伪分区进行适当的备份、截断或删除。

  或者,您还可以选择重新定义分区函数,将所有空白分区合并到一个分区中。

  Transact-SQL 方面的改进

  新的数据类型

  SQL Server 2005 中有一些很重要的新类型,这些类型对数据仓库大有裨益:

  •Varchar(max)、nvarchar(max) 和 varbinary(max) 支持 2GB 的数据,对于 text、ntext 和 image 数据类型非常有用。这些扩展的字符类型可能对在数据仓库中保存扩展的元数据和其他说明性信息非常有用。

  新的分析功能

  许多新分析功能都提供了 Transact-SQL 中的基本分析功能。这些功能在那些允许用户查询关系数据库,而不是通过 Analysis Services 排他查询数据的数据仓库中非常有用。另外,在数据中转过程中,这些复杂的计算常被用来开发有价值的数据属性。

  ROW_NUMBER。返回结果集的连续行号。

  RANK。返回行在结果集中的等级。在通常情况下,RANK 值与有序数据集上的 ROW_NUMBER 值相同。但对于那些彼此之间有关联的行来说,则是所有具有相同排序值的行都有相同的等级。而下一个等级则又与 ROW_NUMBER 值相同。换句话说,如果在第一个位置存在双向关联,那么行 1 和行 2 的 RANK 就都为 1,而行 3 的 RANK 则为 3。不存在 RANK 为 2 的行。

  DENSE_RANK。返回行在结果集中的等级。DENSE_RANK 函数与 RANK 相似,只是去除了 RANK 函数所留下的空隙。在上面的示例中,行 1 和行 2 的 RANK 为 1,而行 3 的 RANK 则为 2。

  NTILE。将有序集分成指定数量、大小近似相等的组。

  在 SQL Server 2005 Beta 2 中还不能使用这些函数。

  PIVOT 和 UNPIVOT 操作符

  PIVOT 操作符可以按查询中的中断值旋转结果集,从而使您可以生成交叉数据报告。例如,如果表中在两个不同的行中包含 "Actuals" 和 "Budgets" 数据,则使用 PIVOT 操作符将可以生成带有 [Actuals] 和 [Budgets] 列的交叉数据报告。

  与之相似,UNPIVOT 操作符可以将一行拆分为若干行。在此示例中,带有 [Actuals] 和 [Budgets] 列的行集可以被转换为包含这些值的多个行。

  在以前的 SQL Server 版本中,用户能够编写复杂的 Transact-SQL SELECT 语句来旋转数据。PIVOT 和 UNPIVOT 操作符则为数据旋转提供了更为简单的机制。

  递归查询

  在许多方案中,“递归查询”都是非常有用的。SQL Server 2005 中的新增功能令递归查询成为可能,虽然此项功能还不是十分简单易用。

  递归查询是针对自联接表的查询。自联接表的两个常见示例有保存员工及其经理信息的数据表,和保存材料清单的数据表。在 AdventureWorks 数据库的 Employee 表中对自联接数据表进行了说明。

  查询自联接表的直接关系通常十分简单,如查询直接向经理报告的员工数量。但是,如果要回答“经理的组织中有多少名员工?”这样一个问题却十分困难。

  SQL Server 2005 中的关系数据库功能解决了这一问题,这一功能被称为“递归通用表表达式”。“附录”中包含一个递归查询的示例,该示例回答了以上定义的问题。联机丛书的 "WITH " 主题中包含更多的相关信息。

      查看原文: