【IT168专稿】微软提供了一套全面的商业智能(BI),它为数据存储、数据分析和数据报表提供了一套可伸缩的数据平台,并让最终用户通过强大、直观的工具(如Office、SQL Server Management Studio 、Business Intelligence Development Studio)来访问和分析商业信息。微软商业智能的核心是Microsoft SQL Server 2008/R2,它是一个全面的数据服务平台,使用户能够:统一企业中所有数据的存储和访问;建立并管理成熟的商业智能解决方案。
Microsoft SQL Server Analysis Services(SSAS,微软SQL Server分析服务)是Microsoft SQL Server 2008/R2的一部分,SASS支持多维数据和数据挖掘,并向报表工具、分析工具、预测工具提供稳定的数据和模型支持。有了多维数据和数据挖掘的基础,使用联机分析处理、Unified Dimensional Model(统一维度模型)和Microsoft Office的深度集成使SSAS的功能愈加强大,本文通过简单案例从多维分析模型的应用价值、建模工具、数据库扩展能力、性能和稳定性方面来介绍,期望起到抛砖引玉的作用。
多维分析模型的应用价值
Microsoft SQL Server 2008 Analysis Services 以Analysis Services 2005所带来的价值为基础,利用了它的可缩放性、高级分析能力以及 Microsoft Office 互操作性。通过在性能、可缩放性以及开发人员工作效率方面的巨大改善,用户可以创建企业规模 Online Analytical Processing(联机分析处理)解决方案。Unified Dimensional Model(统一维度模型)可以合并数据访问,并提供各种分析功能,同时还与 Microsoft Office 和开放式可嵌入体系结构进行深度集成。
多维分析模型的应用价值在于创建企业规模的解决方案、集中管理关键性能指标和记分卡、预测分析。
应用价值一:创建企业规模的解决方案
通过在若干 Analysis Services 服务器之间共享一个只读的 Analysis Services 数据库向外扩充 Analysis Services,实现了可缩放的基础结构。
由于Business Intelligence Development Studio 以Visual Studio 开发环境为基础,因此它可与Visual Studio/VSTS实现完全集成,从而提供设计、开发、协作、优化和测试资源,在Visual Studio IDE中,开发人员的工作更快且更有效率。
应用价值二:集中管理关键性能指标和记分卡
可以把关键性能指标(KPI)和平衡记分卡的数据进行集中管理,并为Performance Point、Excel 、SharePoint和Reporting Services 应用程序的数据访问提供了统一的入口。
应用价值三:预测分析
通过使用Microsoft SQL Server Data Mining Add-Ins for Office 2007 可以进行预测分析,用户能够通过 Office 2007 访问数据挖掘功能,并在熟悉的 Office 环境中利用 Microsoft SQL Server 2008 Analysis Services 极为复杂的数据挖掘算法,因此商业用户只需单击几次鼠标,即可轻松地获得对复杂数据集。
我们可以使用SQL Server 2008 附带的 AdventureWorks 示例数据库来进行预测分析,以下案例根据M200 型号在各地区销售情况的历史记录进行预测,演示的主要步骤如下:
(1)下载安装SQL Server 2008 Office 2007 数据挖掘外接程序,其下载地址如下:
http://www.microsoft.com/downloads/details.aspx?FamilyId=896A493A-2502-4795-94AE-E00632BA6DE7&displaylang=zh-cn
(2)打开Excel文件DMAddins_SampleData.xlsx,选择名称为Forecasting 的Sheet
(3)连接数据库,使用预测工具
最终结果如图1所示:
图1 数据挖掘预测分析
建模工具和关键过程
SSAS的建模的目的是设计多维数据库对象,建模的工具包括SQL Server Management Studio 和Business Intelligence Development Studio ,前者用于管理 Analysis Services、SQL Server、Integration Services 和 Reporting Services 的实例,可以管理 Analysis Services 对象(执行备份、处理等),还可以使用 XMLA 脚本直接在现有的 Analysis Services 实例上创建新对象,并提供了分析服务器脚本项目。Business Intelligence Development Studio 是一种基于Visual Studio 2008的开发环境,用于创建和修改商业智能解决方案。使用 Business Intelligence Development Studio,可以创建包含 Analysis Services 对象(多维数据集、维度等)定义的 Analysis Services 项目。
使用Business Intelligence Development Studio建模的关键步骤有四步:
(1)定义 Analysis Services 项目
(2)配置 Analysis Services 项目属性
(3)生成 Analysis Services 项目
(4)部署 Analysis Services 项目
SSAS数据库的扩展能力,包括:数据挖掘、权限和访问接口
与传统的 OLAP平台相比,SSAS提供了更多高级特性。这使组织能够利用一种解决方案满足多种分析需求,因为该解决方案提供的特性要比传统的 OLAP 平台多得多。在这方面,Unified Dimensional Model(统一维度模型)扮演了核心角色,它提供了丰富的分析功能。
统一维度模型(Unified Dimensional Model,UDM)对于 Analysis Services 而言是一个新概念,它最早是随着 SQL Server 2005 的发布而出现的。它在用作数据源和专有多维数据集的物理关系数据库与用于满足用户查询的维度结构之间提供了中间逻辑层。通过这种方式,可将 UDM 当作 OLAP 解决方案的核心部分。该模型还提供丰富的高级商业智能功能,以提供最优的关系分析和 OLAP 分析,并进一步使组织能够利用独特的Key Performance Indicator Framework (关键性能指标框架)以及复杂的预测分析功能,轻松地扩展解决方案。SSAS不仅对解决方案易于扩展,对数据挖掘、权限和访问接口也能做扩展,下面分别描述:
(1)数据挖掘扩展
SASS和数据挖掘的关系如图2所示:
图2 SQL Server数据挖掘
SASS对数据挖掘的扩展主要体现在:提供了一组行业标准的数据挖掘算法;通过数据挖掘设计器,能够创建、管理和浏览数据挖掘模型,并在随后使用这些模型创建预测;支持数据挖掘扩展插件 (DMX) 语言,可用于管理挖掘模型和创建复杂的预测查询。
这些功能和工具,对数据挖掘提供了有效扩展,可以单独使用某一种功能或工具,也可以组合使用这些功能和工具,以发现数据中存在的趋势和模式,为决策做成数据支持。
(2)权限扩展
SASS 对数的保护分成了两个级别:实例级和用户级。实例级由 Analysis Services 实例使用的所有物理元素构成,必须对这些元素实施保护以确保只有经过授权的用户才有权访问它们。这些元素包括数据文件夹、应用程序等等。用户级由授予用户的权限构成,这些权限允许用户访问存储在 Analysis Services 数据库内的信息并阻止用户访问超出其特权的数据,用户级的权限实现方式有:
建立用户身份验证机制
定义服务器角色的用户允许权限
定义 OLAP 对象级安全性
定义数据挖掘对象级安全性
定义程序集和存储过程级安全性
启用或禁用实例配置属性
(3)访问接口扩展
在使用SSAS开发报表或进行数据挖掘的过程中,访问接口的扩展包括:OLE DB for Data Mining 、ADOMD.NET、分析管理对象 (AMO) 、Analysis Services 脚本语言。
OLE DB for Data Mining扩展了Microsoft OLE DB for Data Mining 1.0 规范,能够添加新的架构行集、在现有架构行集中添加列以及向数据挖掘扩展插件 (DMX) 语言添加用于创建和管理挖掘结构的语法。
分析管理对象 (AMO) 是一个完整的对象库,这些对象可通过编程方式进行访问,该对象库使应用程序能够管理正在运行的 Microsoft SQL Server Analysis Services 实例。ADOMD.NET 是用于与 Microsoft SQL Server Analysis Services 进行通信的 Microsoft .NET Framework 数据访问接口。ADOMD.NET 可使用 XML for Analysis 协议与分析数据源通信,方法为使用 TCP/IP 或 HTTP 连接传输和接收符合 XML for Analysis 规范的 SOAP 请求和响应。
Analysis Services 脚本语言(Analysis Services Script language,ASSL)是SASS客户端应用程序与Analysis Services通信所使用的脚本语言,是一种特殊的XML语言,包括对象定义语言和向 Analysis Services 实例发送操作命令的命令语言。
性能、稳定性和安全性
(1)性能
在大多数商业环境中,关系型数据库是业务关键应用程序和服务的核心所在。SQL Server 作为关系型数据库,对数据库性能的分析我们从关系数据库的性能以及SQL Server 2008的几大功能组件:数据仓库和分析服务、报表服务、集成服务这个方面来介绍其性能。
SQL Server 2008/R2提供了一个强大的数据库引擎,它支持大型关系数据库和复杂的查询处理,是第一个发布更新的TCP-E基准结果的数据库销售商,通过一个创记录的3GB的TPC-H结果显示了它对大范围的数据仓库工作量的执行能力;它包含SQL Server Profiler 和Database Engine Tuning Advisor。通过使用SQL Server Profiler,你可以捕捉应用程序典型负载中所发生的事件,然后在Database Engine Tuning Advisor 中将这些事件重现,从而针对数据的索引和分区生成相应建议,这样你就可以优化应用程序的性能了;
它提供了性能套件,性能套件是一套用来收集、分析、排除故障和存储SQL Server 诊断信息的集成框架。性能套件为性能监控提供了一个端对端的解决方案,其中包括针对性能数据的低开销收集、集中化存储、以及分析报表。你可以使用SQL Server管理套件来管理收集工作,例如可以使用数据收集器、启动一个收集集合并查看作为性能状态面板的系统收集集合报表。你还可以使用系统存储结构和性能套件应用程序编程接口(API)来建立你自己的基于性能套件的性能管理工具。性能套件提供了一个统一的数据收集基础架构,它在每一个你想监控的SQL Server实例中都有一个数据收集器。这个数据收集器非常灵活,它可以管理数据收集范围以适应开发、测试和生产环境。你使用这个数据收集框架就可以轻松地收集性能数据和一般的诊断数据。
在数据仓库和分析服务性能上,查询优化器可以动态地导入一个非常好的的位图过滤器来加强星型模式(star schema)的查询性能。支持数据分割、高级索引功能和索引视图来支持更大型的数据存储,还有稀疏列和有效的数据类型,例如VARDECIMAL,对于包含大量 NULL 值的大型表,它可以降低相关开销(数据仓库的一个普通特性)。在SQL Server分析服务中的块计算使用默认的值,将要计算的表达式的数目降至最低,并将单元导航限制为整个空间只有一次,而不是每个单元一次,从而显著提高了计算性能。
在报表服务性能上,报表服务引擎被重新开发,以便通过按需处理过程对报表服务添加更好的性能和可扩展性。报表不再局限于内存,提供了新的渲染器。
在集成服务性能上,实现了显著改进的查找性能,它降低了包运行时间并优化了ETL操作。具有变更数据捕获(Change Data Capture, CDC) 功能来记录对变更表的更新,当数据刷新按计划进行时,可以实现对数据变更的跟踪并确保数据仓库的一致性。
(2)稳定性
SQL Server 2008/R2 提供一系列技术支持确保零宕机,包括 16 节点集群、数据库镜像、发布订阅、对等复制和日志传送。这些功能结合热插拔硬件支持、联机备份和还原功能,让 SQL Server 成为任务关键型应用程序的较好选择。例如,根据 Wipro Technologies 的一项研究,将 SAP ERP 环境迁移到 SQL Server 可以减少超过 20% 的意外停机时间。
(3)安全性
可以在多个级别对 Microsoft SQL Server Analysis Services 进行保护。必须保护 Analysis Services 的每个实例及其数据源,从而确保只有经过授权的用户才拥有所选维度、挖掘模型以及数据源的读或读/写权限,并阻止未经授权的用户恶意破坏敏感商业信息。可以通过以下步骤来保护分析服务的实例:
安全体系结构包括安全角色、安全属性、使用 SQL Server Management Studio 管理 Analysis Services;
为 Analysis Services 配置登录账户;
保护 Analysis Services 实例;
配置对 Analysis Services 的访问权限