Microsoft SQL Server Analysis Services 支持瘦客户端体系结构。 Analysis Services 计算引擎完全基于服务器,因此所有查询都在服务器上解析。 因此,每个查询只需要客户端和服务器之间的单个往返,因此,随着查询的复杂性增加,性能可缩放。
Analysis Services 的本机协议是 XML for Analysis (XML/A)。 Analysis Services 为客户端应用程序提供了多个数据访问接口,但所有这些组件都使用 XML for Analysis 与 Analysis Services 实例通信。
多个不同的提供程序随 Analysis Services 一起提供,以支持不同的编程语言。 提供程序通过 TCP/IP 或通过 Internet Information Services (IIS)通过 SOAP 数据包发送和接收 XML for Analysis 与 Analysis Services 服务器通信。 HTTP 连接使用由 IIS 实例化的 COM 对象,称为数据泵,该泵充当 Analysis Services 数据的管道。 数据泵不会以任何方式检查 HTTP 流中包含的基础数据,也不检查任何可用于数据库本身中的任何代码的基础数据结构。
Win32 客户端应用程序可以使用 OLE DB for OLAP 接口或组件对象模型 (COM) 自动化语言的 Microsoft® ActiveX® 数据对象(ADO)对象模型(如 Microsoft Visual Basic®)连接到 Analysis Services 服务器。 使用 .NET 语言编码的应用程序可以使用 ADOMD.NET 连接到 Analysis Services 服务器。
现有应用程序只需使用 Analysis Services 提供程序之一即可与 Analysis Services 通信,而无需修改。
| 程序设计语言 | 数据访问接口 |
|---|---|
| C++ | OLE DB for OLAP |
| Visual Basic 6 | ADO MD |
| .NET 语言 | ADO MD.NET |
| 支持 SOAP 的任何语言 | XML for Analysis |
Analysis Services 有一个 Web 体系结构,具有完全可缩放的中间层,供小型和大型组织部署。 Analysis Services 为 Web 服务提供广泛的中间层支持。 OLE DB for OLAP 和 ADO MD 支持 ASP 应用程序,ADOMD.NET 支持 ASP.NET 应用程序。 下图所示的中间层可缩放给许多并发用户。
:
客户端和中间层应用程序都可以与 Analysis Services 直接通信,而无需使用提供程序。 客户端和中间层应用程序可以通过 TCP/IP、HTTP 或 HTTPS 在 SOAP 数据包中发送 XML 进行分析。 客户端可以使用支持 SOAP 的任何语言进行编码。 在这种情况下,Internet Information Services (IIS)使用 HTTP 轻松管理通信,但也可以使用 TCP/IP 与服务器的直接连接进行编码。 这是 Analysis Services 最精简的客户端解决方案。
表格或 SharePoint 模式下的 Analysis Services
在 SQL Server 2014 中,服务器可以在 xVelocity 内存中分析引擎(VertiPaq)模式下启动,用于表格数据库和已发布到 SharePoint 网站的 PowerPivot 工作簿。
PowerPivot for Excel 和 SQL Server Data Tools (SSDT)是唯一支持创建和查询使用 SharePoint 或表格模式的内存中数据库的客户端环境。 使用 Excel 和 PowerPivot 工具创建的嵌入式 PowerPivot 数据库包含在 Excel 工作簿中,并保存为 Excel .xlsx 文件的一部分。
但是,如果将多维数据集数据导入工作簿,PowerPivot 工作簿可以使用传统多维数据集中存储的数据。 如果数据已发布到 SharePoint 网站,则还可以从另一个 PowerPivot 工作簿导入数据。
注释
将多维数据集用作 PowerPivot 工作簿的数据源时,从多维数据集获取的数据定义为 MDX 查询;但是,数据作为平展快照导入。 不能以交互方式处理数据或从多维数据集刷新数据。
PowerPivot 客户端的接口
PowerPivot 使用 Analysis Services 的已建立接口和语言与工作簿中的 xVelocity 内存中分析引擎(VertiPaq)存储引擎交互:AMO 和 ADOMD.NET,以及 MDX 和 XMLA。 在外接程序中,度量值是使用类似于 Excel、数据分析表达式(DAX)的公式语言定义的。 DAX 表达式嵌入到发送到进程内服务器的 XMLA 消息中。
提供者
PowerPivot 和 Excel 之间的通信使用 MSOLAP OLEDB 提供程序(版本 11.0)。 在 MSOLAP 提供程序中,有四个不同的模块或传输,可用于在客户端和服务器之间发送消息。
TCP/IP 用于正常的客户端-服务器连接。
HTTP 用于通过 SSAS 数据泵服务或调用 SharePoint PowerPivot Web 服务 (WS) 组件进行 HTTP 连接。
INPROC 用于连接到进程内引擎。
渠道 保留用于与 SharePoint 场中的 PowerPivot 系统服务的通信。