从 Analysis Services 或 PowerPivot 导入数据

在 PowerPivot for Excel 中,您可以将 Analysis Services 数据库用作 PowerPivot 工作簿的数据源。该数据库可以是使用 SQL Server Analysis Services 生成的传统多维数据集,也可以是已发布到 SharePoint 服务器的其他 PowerPivot 工作簿。

本主题包含以下各节:

先决条件

选择导入方法

从多维数据集导入数据

从 PowerPivot 工作簿导入数据

连接到作为外部数据源的 PowerPivot 工作簿

PowerPivot 如何与 Analysis Services 多维数据集交互

先决条件

Analysis Services 多维数据集版本必须是 SQL Server 2005、SQL Server 2008 或 SQL Server 2008 R2。

用作数据源的 PowerPivot 工作簿必须发布到 SharePoint 2010 站点。运行该 SharePoint 站点的计算机必须不同于您用于导入数据的计算机。

您必须对 SharePoint 站点具有查看权限,才能从 PowerPivot 工作簿导入数据。

选择导入方法

可以使用以下任意方法来使用 Excel 工作簿中的 Analysis Services 或 PowerPivot 数据:

应用程序

方法

链接

PowerPivot for Excel

单击“从 Analysis Services 或 PowerPivot”以从 Analysis Services 多维数据集导入数据。

如何实现…

PowerPivot for Excel

单击“从 Analysis Services 或 PowerPivot”以从发布到 SharePoint 服务器的 PowerPivot 工作簿导入数据。

如何实现…

Excel

单击“获取外部数据”组中的“从其他源”,以设置到发布到 SharePoint 服务器的 PowerPivot 工作簿的连接。

如何实现…

从多维数据集导入数据

SQL Server Analysis Services 数据库包含的任意数据都可以导入到 PowerPivot 工作簿。可以提取维度的全部或一部分,也可以从多维数据集中获取切片和聚合,如当年的销售额总和(逐月列出)。但是,应注意存在以下限制:

  • 从多维数据集或其他 PowerPivot 工作簿导入的所有数据都是平展的。因此,如果定义一个查询针对多个维度检索度量值,则在数据导入时,每个维度将单独占用一列。

  • 数据导入后是静态的。它不按需从 Analysis Services 服务器更新。如果要刷新工作簿以接收 Analysis Services 数据库中的更改,在将工作簿发布到 SharePoint 后必须创建数据刷新计划。或者,可以在 PowerPivot for Excel 中手动刷新数据。有关详细信息,请参阅更新 PowerPivot 中的数据的不同方式

以下过程说明如何从 Analysis Services 实例上的传统多维数据集获取数据的子集。此过程使用 AdventureWorksDW2008R2 示例数据库说明如何导入多维数据集的子集。如果您可以访问具有 AdventureWorksDW2008R2 示例数据库的 Analysis Services 服务器,可以按照这些步骤学习如何从 Analysis Services 导入数据。

  1. 在 PowerPivot 窗口的**“获取外部数据”组中单击“从数据库”,然后选择“从 Analysis Services 或 PowerPivot”**。

    将启动“表导入向导”。

  2. 在**“连接到 Microsoft SQL Server Analysis Services”页的“友好的连接名称”**中,键入数据连接的说明性名称。

  3. 在**“服务器名或文件名”**中,键入承载该实例的计算机的名称:例如,Contoso-srv\CONTOSO。

  4. 可以选择单击**“高级”打开一个对话框,在其中可以配置特定于访问接口的属性。单击“确定”**。

  5. 单击**“数据库名称”**列表右侧的向下箭头,然后从该列表中选择 Analysis Services 数据库。例如,如果您可以访问 AdventureWorksDW2008R2 示例数据库,可选择“Adventure Works 2008 R2”。

  6. 单击**“测试连接”**验证 Analysis Services 服务器是否可用。

  7. 单击**“下一步”**。

  8. 在**“指定 MDX 查询”页中,单击“设计”**以打开 MDX 查询生成器。

    在此步骤中,将要导入 PowerPivot 工作簿的所有度量值、维度属性、层次结构和计算成员拖到大查询设计区域。

    如果有要使用的现有 MDX 语句,可将该语句粘贴到文本框中,然后单击**“验证”**确保语句可以工作。有关如何生成 MDX 查询的详细信息,请参阅 Analysis Services MDX 查询设计器 (PowerPivot)

    对于此过程,使用 Adventure Works 示例多维数据集作为示例,执行以下操作:

    1. 在**“元数据”窗格中,展开“度量值”**,然后展开“销售额汇总”。

    2. 将“平均销售额”拖到大设计窗格。

    3. 在**“元数据”**窗格中,展开“产品”维度。

    4. 将“产品类别”拖到大设计区域中“平均销售额”的左侧。

    5. 在**“元数据”**窗格中,展开“日期”维度,然后展开“日历”。

    6. 将“日期.日历年”拖到大设计区域中“类别”的左侧。

    7. 可以选择添加一个筛选器来导入数据的子集。在设计器右上方的窗格中,对于**“维度”,将“日期”拖入该维度字段。在“层次结构”中,选择“日期.日历年”;对于“运算符”,选择“范围(不包括)”;对于“筛选表达式”**,单击向下箭头,然后选择“2005 年”。

      这会对多维数据集创建一个筛选器,以便排除 2005 年的值。

  9. 单击**“确定”**,检查查询设计器创建的 MDX 查询。

  10. 为数据集键入友好名称。此名称将用作工作簿中的表名称。如果不指定新名称,默认情况下,查询结果将保存在名为 Query 的新表中。

  11. 单击**“完成”**。

  12. 数据加载完成后,单击**“关闭”**。

将数据导入 PowerPivot 窗口后,可以通过选择每个列并查看功能区**“格式设置”组中的“数据类型”**来验证数据类型。请确保检查包含数字或财务数据的列的数据类型。PowerPivot 在遇到空值时有时会将数据类型更改为“文本”。如果给数字或财务数据分配了错误的类型,可以使用“数据类型”选项来更正数据类型。

从 PowerPivot 工作簿导入数据

  1. 在 PowerPivot 窗口的**“获取外部数据”组中单击“从数据库”,然后选择“从 Analysis Services 或 PowerPivot”**。

    将启动“表导入向导”。

  2. 在**“连接到 Microsoft SQL Server Analysis Services”页的“友好的连接名称”**中,键入数据连接的说明性名称。为连接使用说明性名称可以帮助您记住使用连接的方式。

  3. 在**“服务器名称或文件名”**中,键入已发布的 .xlsx 文件的 URL 地址。例如,http://Contoso-srv/Shared Documents/ContosoSales.xlsx。

    注意注意

    不能使用本地 PowerPivot 工作簿作为数据源,PowerPivot 工作簿必须发布到 SharePoint 站点。

  4. 可以选择单击**“高级”打开一个对话框,在其中可以配置特定于访问接口的属性。单击“确定”**。

  5. 单击**“测试连接”**以验证 PowerPivot 工作簿可用。

  6. 单击**“下一步”**。

  7. 单击**“设计”**。

  8. 通过将度量值、维度属性或层次结构拖到大设计区域来生成查询。可以选择使用右上角的“筛选器”窗格来选择要导入的数据子集。有关如何生成查询的示例,请参阅上一节中的步骤。

  9. 单击**“确定”**。

  10. 单击**“验证”**。

  11. 单击**“完成”**。

将 PowerPivot 数据复制到不同于原始工作簿的工作簿,并以压缩格式存储。导入数据后,关闭与工作簿的连接。若要重新查询原始数据,可以刷新工作簿。有关详细信息,请参阅更新 PowerPivot 中的数据的不同方式

连接到作为外部数据源的 PowerPivot 工作簿

可以将 PowerPivot 数据作为 Excel 中的外部数据源,而不将数据嵌入工作簿中。在这种情况下不需要 PowerPivot for Excel,但是必须具有 Analysis Services OLE DB 访问接口的正确版本。若要获取最新版本的访问接口,请从 Microsoft 网站的 SQL Server 2008 功能包页下载并安装 Microsoft SQL Server 2008 R2 Analysis Services OLE DB 访问接口。

  1. 在 Excel 中的“数据”选项卡上“获取外部数据”组中,单击**“从其他源”**。

  2. 单击**“从 Analysis Services”**。

  3. 在“服务器名称”框中,键入 PowerPivot 工作簿的地址。该地址必须包括含有数据的 .xlsx 文件,例如 http://constoso-srv/team site/shared documents/contoso-quarterly-sales.xlsx。

    注意注意

    如果显示“XML 分析在第 1 行、第 1 列处失败”错误,很可能是因为 Analysis Services OLE DB 访问接口的版本不正确。可以安装 PowerPivot for Excel,或从 Microsoft 网站的 SQL Server 2008 功能包页下载并安装 Microsoft SQL Server 2008 R2 Analysis Services OLE DB 访问接口。

  4. 单击**“下一步”**。

  5. 在“选择数据库和表”中,单击**“完成”**。

  6. 在“导入数据”中,指定希望显示数据的方式(例如,选择“数据透视表”)。

  7. 单击**“属性”**,然后打开“定义”选项卡来验证连接字符串是否指定了 Provider=MSOLAP.4。此步骤确保您具有正确的 OLE DB 访问接口。

  8. 单击**“确定”,然后单击“完成”**以设置连接。

数据透视表字段列表显示在包含 PowerPivot 工作簿的字段的工作区中。

PowerPivot 如何与 Analysis Services 多维数据集交互

使用向导连接到 Analysis Services 数据源时,PowerPivot VertiPaq 引擎针对 Analysis Services 数据库构造 MDX 查询,然后将数据下载到工作簿中。数据不能刷新,当多维数据集中的数据更改时也不会自动更新。

导入到 PowerPivot 工作簿的数据在数据导入阶段后是自包含的。不要将 PowerPivot 工作簿视为现有多维数据集的浏览图面,而应将其视为一个工作区,在其中可以获取有用的多维数据集数据子集,从中派生独立于多维数据集和其他数据源的新分析。

如果要查看 PowerPivot 工作簿在导入期间生成的 MDX 语句,可以创建一个跟踪文件。有关如何创建跟踪文件的信息,请参阅PowerPivot“选项和诊断”对话框

如果您习惯在 Excel 中使用 Analysis Services 多维数据集,应知道某些 Excel 功能不能与 PowerPivot 工作簿一起使用。连接到 PowerPivot 多维数据集时,不支持以下 Excel 功能:

  • 脱机多维数据集

  • 数据透视表中的分组功能

  • 钻取命令