PowerPivot 系统服务

PowerPivot 系统服务是 PowerPivot for SharePoint 的一项功能,可在 SharePoint 2010 场中实现 PowerPivot 工作簿访问和服务器管理。该功能与其他服务器组件一起提供中间层基础结构,从而可以建立与 PowerPivot 数据的用户连接、加载和卸载数据以及监视和报告服务器运行状况。

PowerPivot 系统服务是与在 SharePoint 集成模式下运行的 Analysis Services 实例一起安装的 Web 服务。这两种服务紧密结合并且共同执行使 PowerPivot 数据可用于场中的任务。服务的设置是通过 SharePoint 服务应用程序进行的,该应用程序或者是在安装期间系统为您创建的,或者是在 SharePoint 管理中心作为安装后任务手动创建的。

单击下面的链接可转到本主题中的特定部分:

服务操作

服务配置和管理

服务依赖项和要求

场中的服务器连接

请求分配

缓存 PowerPivot 数据

缓存查找和维护

服务操作

PowerPivot 系统服务执行以下操作:

服务器操作

说明

处理针对 PowerPivot 数据的按需请求

PowerPivot 系统服务处理针对存储在 SharePoint 场的内容库中的 PowerPivot 数据的请求。它接受来自应用程序服务器上的 MSOLAP 数据访问接口的请求,或来自 Web 前端服务器上的 PowerPivot Web 服务的请求。PowerPivot 系统服务从 SharePoint 库检索 PowerPivot 工作簿,并且模拟请求了数据的 SharePoint 用户。然后,PowerPivot 系统服务将数据加载请求转发到本地 Analysis Services。Analysis Services 从工作簿提取 PowerPivot 数据,将数据加载到内存中,并且将结果集返回到请求了这些数据的客户端或服务器应用程序中。

PowerPivot 系统服务将继续监视针对数据的请求并且在 PowerPivot 服务应用程序数据库中更新这些信息。如果该文件在 48 小时未处于活动状态,则 PowerPivot 系统服务将向本地 Analysis Services 实例发出一个卸载请求。

处理针对 PowerPivot 数据刷新的请求

PowerPivot 系统服务还监视计划重复运行的数据刷新作业的队列。在计划的时间,它将指示本地 Analysis Services 实例加载 PowerPivot 数据,并从外部数据源重新导入数据。数据刷新是代表用户执行的服务器操作。请注意,若要支持此类操作,需要附加的服务和配置。有关详细信息,请参阅启用和配置 PowerPivot 数据刷新

将处理任务分配给 Analysis Services 服务实例

如果场中具有多个 PowerPivot for SharePoint 实例,PowerPivot 系统服务将在可用服务器之间对查询处理请求实现负载平衡。SharePoint 维护每台服务器上可用的服务的列表。PowerPivot 系统服务使用此列表来查找场中的其他服务器。为了确定哪个 PowerPivot for SharePoint 服务器获取特定请求,PowerPivot 系统服务使用一种分配方法。方法包括循环方法(默认)或基于服务器运行状况的方法。可以将服务应用程序配置为使用任一种方法。有关分配的详细信息,请参阅本主题中的Request Allocation。

设置用户和管理连接

PowerPivot 系统服务管理与 Analysis Services 实例的活动的、可重用的和缓存的连接。通过为与同一内存中的数据源之间的用户连接维护的连接池,可以为向已加载的 PowerPivot 数据不断发出的连接请求提供服务。PowerPivot 系统服务还创建和管理与场中其他 PowerPivot 系统服务实例的管理连接。

发出缓存数据的请求

为了减少从内容库中检索 PowerPivot 数据所引入的等待时间,PowerPivot 系统服务使用一种缓存方法,该方法存储并加载文件系统中数据的一个本地副本。有关缓存的详细信息,请参阅本主题中的Caching PowerPivot Data。

发出卸载数据的请求

PowerPivot 系统服务监视 PowerPivot 数据访问,并指示 Analysis Services 实例从内存中卸载非活动的数据源。一旦 PowerPivot 数据源加载到内存中,它就会保留在此处,以便为针对相同数据的其他请求提供服务。经过一段非活动期后,PowerPivot 系统服务将向 Analysis Services 实例发出卸载 PowerPivot 数据并释放应用程序服务器上的内存的请求。默认情况下,如果超过 48 小时用户没有与数据进行任何交互,则将该会话视为处于非活动状态。

收集使用情况数据

PowerPivot 系统服务分别为连接、加载、卸载、查询报告和服务器状态检查等注册使用情况事件,并为这些事件生成使用情况数据。使用情况数据在 PowerPivot 管理面板中可用。有关详细信息,请参阅 PowerPivot 使用情况数据收集

监视服务器运行状况

PowerPivot 系统服务监视 Analysis Services 服务的可用性和运行状况。按照 PowerPivot 运行状况统计信息收集器计时器作业确定的间隔,PowerPivot 系统服务从具有 Analysis Services 实例的每台计算机请求系统信息。CPU 和内存使用情况数据显示在 PowerPivot 管理面板的服务器运行状况报告中。有关详细信息,请参阅 PowerPivot 管理面板

服务配置和管理

PowerPivot 系统服务通过 PowerPivot 服务应用程序进行配置,此服务应用程序初始化物理服务实例,并使用为该特定服务应用程序定义的设置、应用程序数据和安全上下文。您可以使用服务应用程序具有的属性来配置超时阈值、负载平衡、事件日志记录级别、使用情况数据收集和数据刷新,但服务应用程序不提供可供更改用于缓存、卸载或删除数据文件的预定义时间间隔的属性。

如果 SQL Server 安装程序为您配置了 PowerPivot 服务应用程序,则会将服务分配到为场定义的服务应用程序池 - SharePoint Web 服务系统。作为一项安全最佳实践,稍后应更改此服务帐户,以运行专用帐户。有关详细信息,请参阅 PowerPivot 服务应用程序更改服务帐户和密码 (PowerPivot for SharePoint)

服务器配置和管理通过管理中心和 PowerPivot 管理面板进行,其中显示了特定 PowerPivot 服务应用程序的使用情况数据。有关详细信息,请参阅 PowerPivot 管理面板SharePoint 管理 (PowerPivot for SharePoint)

不要使用 SQL Server 配置管理器、Internet Information Services 等其他工具和应用程序来管理随 PowerPivot for SharePoint 一起安装的服务。应使用管理中心来启动或停止服务,或更改服务帐户或者密码,确保向场中的其他服务器广告对服务器状态或身分的更改。在您使用 SharePoint 工具来管理在场中运行的服务时,由 SharePoint 管理的权限和登录名也会更新。

服务依赖项和要求

PowerPivot 系统服务作为一个共享服务在 SharePoint 应用程序服务器上运行。它与在同一物理计算机上运行的本地 SQL Server Analysis Services PowerPivot 实例 (MSOLAP$PowerPivot) 紧密结合。它还是定向到本地 Analysis Services 实例的所有数据加载和卸载请求的唯一途径。PowerPivot 系统服务的每个物理实例都始终具有一个本地 Analysis Services 服务器实例。SQL Server 安装程序将这些服务一起进行安装和配置。两个服务必须具有相同的状态(运行或停止)以避免请求失败。

PowerPivot 系统服务必须有一个为其定义的服务应用程序。该服务应用程序提供 HTTP 端点。在完成此步骤之前,服务操作将不可用。

PowerPivot for SharePoint 对其他 SharePoint 功能和基础结构具有依赖关系,包括 Excel Services、Claims to Windows Token 服务和安全存储区服务。有关对 SharePoint 提供的功能的操作依赖性的详细信息,请参阅 PowerPivot for SharePoint 的默认配置

场中的服务器连接

与 PowerPivot 数据的连接来自使用 Analysis Services 客户端库查询 PowerPivot 数据的客户端或服务器应用程序。客户端库(ADOMD.NET、AMO 或 Analysis Services OLE DB 访问接口)决定了 PowerPivot 工作簿是驻留在场内还是驻留在场外。根据工作簿 URL 是在场内还是在场外,客户端库路由请求的方式有所不同。

  • 针对场内的请求跳过 PowerPivot Web 服务直接发送到 PowerPivot 服务应用程序。此类请求的最常见示例是针对 Excel 工作簿中嵌入的 PowerPivot 数据。在此场景中,Excel Calculation Services 使用 Analysis Services OLE DB 访问接口查找场中的 PowerPivot 服务应用程序。与 PowerPivot 服务应用程序的直接连接并不仅限于 Excel Calculation Services。如果查询数据的报表或面板在同一场中运行,则 Reporting Services 报表或 PerformancePoint 面板等其他应用程序也会与 PowerPivot 服务应用程序建立直接连接。

  • 针对场外的请求通常来自仅查询 PowerPivot 数据的客户端或服务器应用程序。此类请求的最常见示例是将 PowerPivot 工作簿用作报表生成器中的外部数据源,或用作另一个 Excel 工作簿的数据源。在此场景中,外部连接仅检索 Excel 工作簿中的 PowerPivot 数据,而忽略也在同一工作簿中的任何数据可视化和交互对象。

    外部连接发送到源场中的 PowerPivot Web 服务。PowerPivot Web 服务查找 PowerPivot 服务应用程序并与其建立连接,后者又将查询转发给负责加载和返回数据的 Analysis Services 实例。有关此服务的详细信息,请参阅 PowerPivot Web 服务 (PowerPivot for SharePoint)

    注意注意

    在 Excel 中打开 PowerPivot 工作簿(例如,通过在“文件打开”对话框中输入工作簿的 SharePoint URL)不涉及 PowerPivot for SharePoint 服务器组件。在 Excel 2010 中打开服务器文档会将文件从 SharePoint 下载到客户端工作站。在此场景中,Excel 桌面应用程序和 PowerPivot for Excel 外接程序通过 Analysis Services VertiPaq 引擎的进程内版本,在本地加载并呈现数据。

下图显示了请求可能流经的不同路线,具体取决于请求是来自场内的 Excel Services,还是来自报表生成器或 Excel 等在场外运行的客户端工具。针对场内的请求与服务应用程序之间使用 WCF 连接。针对场外的请求使用由 PowerPivot Web 服务接收的 HTTP 连接。

组件连接与传输

与 PowerPivot 数据的连接由 Analysis Services OLE DB 访问接口具体表示。使用 PowerPivot 数据的服务和应用程序必须使用一个或多个 SQL Server 2008 R2 版本的 Analysis Services 客户端库。这些库随 PowerPivot for SharePoint 或随 PowerPivot for Excel 一起安装。由于这些库可再发行,您还可以从此 Microsoft 网站上的 SQL Server 2008 R2 功能包网页下载并安装它们。

关于嵌入数据连接

嵌入数据由父工作簿中 PowerPivot 数据连接字符串中的 Data Source = $embedded$ 来指示。对于嵌入数据,Analysis Services OLE DB 访问接口打开一个与 PowerPivot 服务应用程序的 WCF 连接,然后该服务应用程序使用父工作簿的 URL 来检索数据。嵌入数据的 SharePoint 地址始终为父工作簿的 URL。

嵌入数据仅存在于 Excel 2010 工作簿中。Reporting Services 报表和 PerformancePoint 面板均不会在客户端应用程序或查看器中呈现的父文档中嵌入 PowerPivot 数据。

请求分配

如果场中有多个 PowerPivot for SharePoint 服务器实例,则针对 PowerPivot 数据请求可能由任何一个服务器来处理。当分配查询请求时,每个 PowerPivot 服务应用程序都维护一个可用服务器及其所用的已加载数据的列表。此信息存储在 PowerPivot 服务应用程序数据库中。您定义的每个 PowerPivot 服务应用程序都维护其自己的服务器列表版本,并针对每个查询请求引用该列表。如果 Analysis Services 服务实例拒绝某个请求或请求无法开始,将会立即更新该列表。

PowerPivot 系统服务使用一个缓存系统和一个负载平衡方案来分配请求。服务器将执行以下检查,直到找到并加载数据为止:

  1. 数据已加载。PowerPivot 服务应用程序将检查其内部活动 PowerPivot 数据集列表,以确定对于场中的某个 Analysis Services 实例是否已将数据加载到内存中。如果当前已加载数据,则会为新请求打开一个用户连接。

  2. 数据未加载但已缓存。PowerPivot 服务应用程序检查其内部已在文件系统上的缓存 PowerPivot 数据集列表。如果多个服务器上缓存了相同的 PowerPivot 数据集,则 PowerPivot 服务应用程序将检查服务器运行状况,并生成具有足够资源来接受请求的服务器的列表。从该列表中,随机选择一个服务器。

  3. 数据既未加载也未缓存。在此情况下,必须从内容库检索 PowerPivot 数据。将使用分配方案来确定哪个服务器获取该请求。一旦选择了服务器,PowerPivot 服务应用程序将向 Analysis Services 实例发出加载请求,并传递 PowerPivot 工作簿的 SharePoint URL。

    默认情况下,PowerPivot for SharePoint 采用在两个或更多 PowerPivot 服务器之间按重复顺序分配请求的循环法方案。或者,您也可以指定基于服务器运行状况的方案。此选项指示 PowerPivot 服务将请求分配到负载最小的服务器。有关指定负载平衡方案的详细信息,请参阅创建和配置 PowerPivot 服务应用程序

缓存 PowerPivot 数据

如果 PowerPivot 数据 48 小时处于非活动状态,则数据将从内存卸载并且缓存到磁盘。将数据文件存入缓存可以消除从内容数据库检索数据所导致的长时间等待。通过首先缓存到磁盘,服务器可以快速重新加载数据,以便为查询请求提供服务或用于数据刷新目的。数据将在缓存中保留三天,之后将从服务器上物理删除。

PowerPivot 数据缓存在加载该数据的服务器上。尽管只要可能就可以重复使用缓存的数据,但如果对该数据的访问比较频繁并且向其他服务器分配了此请求,则相同的数据可能被缓存到多个服务器上。

默认情况下,Analysis Services 服务实例将缓存的文件存储在 C:\Program Files\Microsoft SQL Server\MSAS10_50.POWERPIVOT\OLAP\Backup 文件夹中。Analysis Services 实例和 PowerPivot 服务应用程序均被授予了读写此文件夹的权限。仅缓存 PowerPivot 数据文件;一旦提取 PowerPivot 数据后,将永远不会缓存或重复使用提供这些数据的 Excel 工作簿。

可以手动删除 Backup 文件夹中的 PowerPivot 数据文件以释放磁盘空间,但在下次请求文件时会将文件添加到缓存。不能关闭对系统或各个 PowerPivot 工作簿的缓存功能。所有 PowerPivot 数据文件都会在执行卸载操作时缓存到文件系统。

缓存查找和维护

有关缓存的文件的信息将由 PowerPivot 服务应用程序进行维护。该服务运行清除和查找过程,以便删除未使用的数据并查找新的缓存数据文件。更新的信息将写入 PowerPivot 服务应用程序数据库的实例映射中。

清除和查找进程在后台运行。它是不可配置的,您无法手动运行它以强制执行清除或发现操作。

维护包含以下操作:

  • 删除过去 3 天内未曾使用的所有缓存的文件。只有在缓存的文件共 5 天(2 天位于服务器内存中,3 天位于缓存中)处于非活动状态后,才删除这些文件。该进程将每 30 分钟检查是否有非活动文件。

  • 删除已在内容数据库中更新或删除的所有缓存的文件。例如,如果已在服务器上刷新数据,将删除这些数据的缓存的副本。此检查将每天执行。

  • 在 PowerPivot 服务应用程序数据库中为在文件系统上找到的新缓存文件添加新条目。数据库包含存储有关缓存文件信息的表。随着新文件添加到缓存中,清除和发现进程将找到这些新文件并且更新 PowerPivot 服务应用程序数据库中的实例映射。该进程每天验证与缓存的文件有关的实例映射信息。

  • 验证 PowerPivot 服务应用程序数据库中列出的缓存文件实际存在于磁盘上的预期位置。如果在文件系统上删除了某个文件,则该文件也将从列表中删除。此检查将每天执行。