Analysis Services 开发的客户端体系结构要求
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 接口或 Microsoft® ActiveX® 数据对象 (ADO) 组件对象模型 (COM) 自动化语言(例如 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 for Analysis。 客户端可以使用任何支持 SOAP 的语言进行编码。 在这种情况下,尽管也可对使用 TCP/IP 与服务器建立的直接连接进行编码,但通信可由 Internet Information Services (IIS) 使用 HTTP 以最轻松的方式进行管理。 这是 Analysis Services 最精简的客户端解决方案。
表格或 SharePoint 模式下的 Analysis Services
在 2014 SQL Server中,可以在 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(AMO 和 ADOMD.NET 以及 MDX 和 XMLA)的已建立接口和语言,与工作簿中的 xVelocity 内存中分析引擎 (VertiPaq) 存储引擎进行交互。 在该外接程序内,通过使用与 Excel、数据分析表达式 (DAX) 类似的公式语言定义度量值。 DAX 表达式嵌入在发送到进程内服务器的 XMLA 消息内。
提供程序
PowerPivot 和 Excel 之间的通信使用 MSOLAP OLEDB 提供程序 (版本 11.0) 。 在 MSOLAP 访问接口内,有四个可用于在客户端和服务器之间发送消息的不同的模块或传输。
TCP/IP 用于正常的客户端-服务器连接。
HTTP 用于通过 SSAS 数据泵服务或通过调用 SharePoint PowerPivot Web 服务 (WS) 组件进行 HTTP 连接。
INPROC 用于连接到进程内引擎。
通道 保留用于与 SharePoint 场中的 PowerPivot 系统服务通信。