数据馈送概述 (PowerPivot for SharePoint)

数据馈送从联机数据源向客户端应用程序按需提供数据流。在 SQL Server 2008 R2 Analysis Services 中,您可以使用数据馈送将来自任何源的 Atom XML 数据推送到 PowerPivot 数据源中。

由于数据馈送基于已发布的标准,因此您可以通过多种方式使用它们,而不用局限于馈送相对于 PowerPivot 数据源的执行任务的特定角色。虽然本主题的范围未涵盖广泛的数据馈送应用程序,但遵循本主题结尾处的链接,便可以阅读有关描述 Atom 馈送用法的标准和数据服务技术的信息。

单击以下列表中的链接以了解有关支持 PowerPivot 数据源的数据馈送功能的详细信息:

数据馈送的定义

Atom 数据服务的定义

关于数据服务文档(.atomsvc 文件)

处理数据服务文档

对数据馈送导入操作进行身份验证

读取 PowerPivot 客户端应用程序中的数据馈送

关于 Atom 标准

了解有关数据服务和数据馈送的详细信息

数据馈送的定义

数据馈送是由 Web 服务、数据服务或 Web 应用程序生成的一种支持 Atom 标准的 XML Atom 1.0 数据负载。数据馈送具有一致的、不随时间变化的表格结构,以及在每次生成馈送时都可能不同的变量数据。服务或应用程序根据请求提供馈送,从任意数据源中检索数据,然后将其实时发布到请求该数据的客户端应用程序或用户。

实时数据馈送中的组件和过程

作为一项 Analysis Services 功能,数据馈送为数据专家提供了一个非常有用的工具,使 PowerPivot 数据源可随时使用组织数据。如果您的公司数据源无法通过客户端数据提供程序轻松访问,或者这些数据必须通过复杂的查询才能访问,而您不想用这样复杂的查询,这时则可以围绕数据源构建一个以馈送格式公开数据的 Atom 数据服务。有许多产品和技术都可以帮助您将公司数据公开为 REST 应用程序或 Atom 数据服务,其中包括 Microsoft ADO.NET Framework 和 Windows Communication Foundation (WCF) 技术。

除了内部创建的自定义解决方案外,用户还可以从支持馈送格式作为内置功能的应用程序访问数据馈送。SQL Server 2008 R2 组件和 Microsoft Office 2010 中的一些产品支持数据馈送。

Atom 数据服务的定义

必须先拥有一个生成馈送的联机数据源(有时称为数据服务),然后才能使用数据馈送。数据服务是任何支持 URL 寻址的 HTTP 端点,它提供数据,并将其封装到符合 Atom 线路格式的 XML 数据结构中。

为了将数据馈送导入到 PowerPivot 数据源中,数据服务可以是 ADO.NET Data Services、Web 服务、REST 应用程序,甚或是指向一篇静态文档(其中包含 Atom 格式的 XML 数据)的 URL。

数据服务功能还可内置于应用程序中。这些应用程序通过以数据馈送的形式发布或导出数据结构来提供随时可用的数据馈送。可以生成数据馈送的 Microsoft 产品的示例包括:

  • Microsoft SharePoint 2010。可以将其结构和内容导出为数据馈送的 SharePoint 列表。

  • SQL Server 2008 R2 Reporting Services。Reporting Services 中内置了将报表中的数据区域流式处理为 Atom 1.0 数据馈送的功能。有关详细信息,请参阅如何使用数据馈送 (PowerPivot for SharePoint)

关于数据服务文档(.atomsvc 文件)

数据服务文档指定针对一个或多个数据馈送的连接。它至少是一个指向生成馈送的数据服务的简单 URL,同时它还可以是一个包括选择和筛选参数的复杂 URL。

在 SQL Server 2008 R2 Analysis Services 组件中,数据服务文档还会指定在导入数据馈送时将在 PowerPivot 数据源中创建的表的名称。在由 PowerPivot 客户端应用程序处理的数据服务文档中,必须指定目标表。表名称定义了在导入馈送后这些数据在 PowerPivot 数据源中的位置。

如果您知道 XML 语法,则可以手动创建数据服务文档,但它们通常都是由生成馈送的应用程序动态创建的。Reporting Services 和 SharePoint 服务器组件会在生成馈送的过程中在内部创建数据服务文档。如果在内存中自动生成数据服务文档时在计算机上检测到 PowerPivot 客户端应用程序,该客户端应用程序将会自动启动,并立即将馈送导入到新的或开放的 PowerPivot 数据源中。如果本地客户端应用程序不可用于导入数据,将提示信息工作者将数据服务文档 (.atomsvc) 保存到文件系统中,以在日后处理该馈送。

下图说明了如何解析数据馈送请求。在本例中,提供数据馈送的应用程序是 Reporting Services 报表。当用户以数据馈送的形式导出报表时,该馈送将出现在 PowerPivot 数据源的表控件中,或者将提示用户将数据服务文档 (.atomsvc) 文件保存到文件系统。如果未在计算机上安装 PowerPivot 客户端应用程序,则可用的选项将只有保存该文件。

放弃或保存数据服务文档

注意注意

为 .atomsvc 文件定义 Internet 媒体类型(有时称为 MIME 类型)。在服务器上,将 IIS 7.0 配置为允许 .atomsvc 和 application\atomsvc+xml。在客户端工作站上,MIME 类型与 .atomsvc 文件扩展名和 PowerPivot for Excel 关联。在本地计算机上打开 .atomsvc 文件时,将自动启动 PowerPivot for Excel。

在 SharePoint 站点上创建数据服务文档 (.atomsvc) 文件

SharePoint 站点管理员可以在 SharePoint 库中创建 .atomsvc 文件,以便 PowerPivot 客户端应用程序用户可以使用数据馈送。开发人员和数据专家负责创建可生成馈送的 Web 应用程序和数据服务,他们需要一种方法,以便信息工作者可以使用这些馈送。在 SharePoint 库中创建数据服务文档就是这样一种方法,它可使馈送对整个组织可用。

在 SharePoint 站点上,任何拥有“参与讨论”权限的用户都可以在数据馈送库中创建数据服务文档。数据馈送库增加了对“数据服务文档内容类型”的支持。此内容类型为创建和编辑数据服务文档提供了基础。由于文档存储在库中,因此也可以通过删除和保护数据服务文档来控制馈送对您组织中用户的可用性。若要访问库中的数据服务文档,信息工作者需要指定数据馈送库中项的 SharePoint URL。

处理数据服务文档

客户端应用程序(如 PowerPivot for Excel)可以按需处理数据服务文档,以在应用程序中立即使用数据馈送。在处理服务文档时,应用程序会向文档中的服务 URL 发送一个数据请求。对于 PowerPivot for Excel,按其 SharePoint 路径加载数据服务文档会启动一个事件序列,向 PowerPivot 数据源添加新数据。

下图说明了如何请求和发布数据馈送,以及如何将数据馈送导入到 PowerPivot 工作簿中。

从服务到工作表的数据馈送流程

第一步。PowerPivot 客户端应用程序发出一个 HTTP 请求,以从 SharePoint 库中加载数据服务文档。该请求来自客户端应用程序中的“导入数据向导”。用户指定一个数据服务文档的 SharePoint 路径。它在文档内部是一个指针,指向用于提供一个或多个数据馈送的一个或多个数据服务 URL。

第二步。PowerPivot 客户端应用程序读取数据服务文档。在单个数据服务文档内部,可以包含在外部网站上发布联合 Atom 数据的数据服务或 Web 应用程序的任意组合。文档中的每个条目都代表一个馈送,该馈送由指向其提供者(数据服务或应用程序)的连接信息所指定。如图所示,单个数据服务文档可能包含从不同源生成的多个馈送。每个服务或应用程序均通过其 HTTP 端点匿名访问,或使用启动导入操作的用户的安全上下文访问。

第三步。PowerPivot 客户端应用程序向数据服务文档中引用的每个服务或应用程序发送 HTTP 请求。客户端应用程序基于馈送的 URL 发出一个 HTTP GET 请求。

第四步。数据服务或应用程序生成一个馈送。该馈送的结构由提供它的服务或应用程序决定。馈送可能是数据库表或视图的 XML 表示形式,也可能基于数据服务文档中一个复杂的 URL 从不同的表或视图聚合数据。

第五步。PowerPivot 客户端应用程序通过为每个馈送创建单独的表来完成导入过程。所创建的表的名称基于在数据服务文档中找到的表名称。数据服务文档中的每个数据馈送项都与导入完成后承载数据的表的名称相关联。虽然数据馈送是异步生成的,但将这些馈送添加到表中的操作却是一个单一的操作。“导入向导”会待每个馈送均返回后才将数据添加到 PowerPivot 数据源。

对数据馈送导入操作进行身份验证

当 PowerPivot 客户端应用程序对数据服务文档中的数据馈送 URL 发出 HTTP 请求时,生成该馈送的数据服务或应用程序便会在接收端对该请求进行身份验证。

对来自 Reporting Services 报表或 SharePoint 列表的数据馈送进行身份验证

通过从 Reporting Services 或 SharePoint 列表的导出操作而获取的数据馈送通常都是在当前用户的 Windows 安全标识下进行的。对于从这些应用程序向 PowerPivot 客户端应用程序传输数据的数据馈送,只支持 Windows 集成安全性。

您不能指定基本身份验证,也不能指定匿名访问。在从应用程序到应用程序的数据传输中,不能使用用于设置身份验证类型的属性。

如果当前用户具有的安全上下文不是 Windows 安全主体(即,如果用户使用窗体身份验证连接到 Reporting Services,亦或使用窗体身份验证或非 Windows 安全主体连接到 SharePoint Web 应用程序),则该用户将不能将报表或列表导出为数据馈送。

对来自 PowerPivot 客户端应用程序的数据馈送进行身份验证

对于通过 PowerPivot 客户端应用程序中的导入数据向导指定的数据馈送导入操作,您可以在**“高级属性”**对话框中指定身份验证类型。

HTTP 请求支持以下三种身份验证方案:

  • Windows 集成安全性(协商)

  • 以明文形式传递数据的基本身份验证

  • 匿名访问

用于 Atom 馈送的 .NET 托管访问接口(PowerPivot 客户端应用程序用它来导入馈送)支持这些方案。

默认情况下,该访问接口在导入数据的用户的 Windows 安全标识下发出连接。但用户还是可以在该访问接口上设置高级属性,以指定用户 ID 和密码。在这种情况下,将使用基本身份验证发送连接请求,并以明文形式将用户名和密码发送到远程服务器。出于安全考虑,建议仅在通过加密通道建立连接时才这样做。

HTTP 请求并不显式支持匿名访问,但如果您将“用户 ID”和“密码”属性设置为 Null,并将“集成安全性”属性设置为 False,则可以匿名用户的身份建立连接。

读取 PowerPivot 客户端应用程序中的数据馈送

数据读取器会读取您导入的每个数据馈送,并将其转换为应用程序可以理解的对象或结构。用于创建和查看 PowerPivot 数据源的 PowerPivot for Excel 包含一个内置的数据读取器。该数据读取器可为数据馈送中的每个表格结构创建一个表控件。

关联 PowerPivot 数据源中的馈送

当您在单一操作中导入多个馈送时,PowerPivot 客户端应用程序将在这些馈送中查找相关数据。例如,如果数据服务文档指定了一系列从同一关系数据库中返回表格数据的馈送,PowerPivot 客户端应用程序通常可以在导入的数据中重建表关系。同样,如果从一个 Reporting Services 报表生成了多个馈送,则该报表中数据区域之间的关系也会反映在导入的数据中。

若要重新创建原始数据中存在的关系,馈送必须来自一个为其所含的数据提供关联框架的公共源。对于在原始源中并未关联的各个表,PowerPivot 客户端应用程序不会为它们自动建立关系,即使它们共享相同的数据和列属性也是如此。不过,当数据和列属性有共同之处时,您可以轻松地为它们手动创建关系。

关于 Atom 标准

Atom 1.0 标准描述了两个用于发布和构造 XML 数据负载的规范:

  • RFC5023 指定“Atom 发布协议”,该协议描述服务发现以及如何构造数据对象的路径。您在 SharePoint 站点上创建的数据服务文档 (.atomsvc) 文件符合此协议描述的服务文档定义。

  • RFC4287 指定“Atom 联合格式”,该格式指定客户端数据读取器如何在应用程序中解释和显示数据。PowerPivot for Excel 包括一个支持此格式的嵌入式数据读取器。提供实际数据的数据服务必须实现此协议。

    XML 格式包括定义整个结构必需的元素和可选元素,以及组成大部分负载的自定义内容的规定。

如果您熟悉 RSS 馈送,则可能想知道 Atom 馈送与之相比如何。符合 Atom 标准的数据馈送与 RSS 馈送类似,都是按需发布联合数据。Atom 与 RSS 的不同之处在于它为格式正确的 XML 数据提供了一个附加规范。当您要导入结构良好的商业数据以在商业智能解决方案中使用时,这是必需的。因此,在 PowerPivot 数据源中支持使用 Atom 标准的馈送,而不支持 RSS 标准的馈送。

了解有关数据服务和数据馈送的详细信息

以下链接提供有关使用 ADO.NET Data Services 的有用信息和操作说明:

概述:ADO.NET Data Services

使用 ADO.NET Data Services

数据服务快速启动(ADO.NET Data Services 框架)

以下两个链接可连接到 IETF 网站上的 Atom 协议文档:

Atom 1.0 联合格式

Atom 1.0 发布协议