---
schema_version: "1"
id: 808dfb412e422137be19161c2f8487c54eacb067865287ce2282967eb7818e2d
title: 多维数据集数据源
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/pro/desktop/cubes.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/zh-cn/cubes.htm
source_site: help.tableau.com
content_type: documentation
content_hash: fade93299ab09ed54380808aa39061b5dd4002b7ace0fc2ca698f9756b553239
description: Understand cube (OLAP) data sources and which Tableau features differ when using them.
---
[跳转到主要内容](#main-content)

# 多维数据集数据源

多维数据集数据源（也称为多维数据源或 OLAP 数据源）具有某些特征，在 Tableau 中使用这些特征时，可以将多维数据集数据源与关系数据源区分开。本主题描述这些差异，并且还标识在连接到多维数据集数据源时不可用的一些 Tableau 功能。在许多情况下，可以使用替代方法用多维数据集数据源来弥补这些功能的不可用性，但您也可以选择直接连接到用作多维数据集数据源的来源的关系数据库。请与数据库管理员联系，了解这是否是一个选项。

**注意**：仅在 Windows 上对 Tableau Desktop 支持多维数据集数据源 - 多维数据集数据源不适用于 Mac。

## 什么是多维数据集数据源？

多维数据集数据源是多维数据集的设计者事先在其中创建了层次结构和聚合的数据源。

多维数据集功能非常强大，可以非常快速地返回信息，通常比关系数据源快得多。但是，多维数据集之所以速度快，是因为它的所有聚合和层次结构都已预先构建。这些定义会保持静态，直到重新构建多维数据集。因此，如果您需要询问的问题类型不是原始设计者的预期类型，或者如果在构建多维数据集之后它们发生了变化，那么多维数据集数据源不如关系数据源那么灵活。

Tableau 中支持的多维数据集数据源是

- Oracle Essbase
- Teradata OLAP
- Microsoft Analysis Services (MSAS)
- SAP NetWeaver Business Warehouse
- Microsoft PowerPivot

## 使用 MDX 公式创建计算成员

如果您正在使用多维数据集数据源，则可以使用 MDX 公式来创建计算成员，而不是创建 Tableau 公式。MDX 代表多维表达式，是 OLAP 数据库的查询语言。利用 MDX 计算成员，您可以创建更复杂的计算并同时引用度量和维度。计算成员可以是计算度量，即数据源中的新字段，就像计算字段一样。也可以是计算维度成员，即现有分层结构内的新成员。有关详细信息，请参见[如何创建计算成员](https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_calculatedfields_calculatedmember.htm)。

## 使用多维数据集数据源时受影响的 Tableau 功能

使用多维数据集数据源时，并非所有 Tableau 功能的工作方式都与关系数据源的工作方式相同，或者甚至并非所有功能都可用。下表详细说明了差异。

<table style="width: 100%;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><b>功能</b></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p><b>多维数据集数据源的状态</b></p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">动作</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">对于 Microsoft Analysis Services 连接，在多维数据集中定义的下钻操作在 Tableau 中不可用。<p>多维数据集数据源不接受来自关系数据源或其他多维数据集数据源的动作。</p><p>例如，假设您的工作簿包含三个视图，它们分别使用 MySQL 数据源、多维数据集数据源 A 和多维数据集数据源 B。使用 MySQL 数据源的视图中的动作将不会影响使用多维数据集数据源的视图，并且一个多维数据集数据源的视图中的动作不会影响另一个。但是，使用多维数据集数据源的视图中的动作将影响使用 MySQL 数据源的视图。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">高级分析功能</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">多维数据集数据源不支持详细信息级别的表达式、趋势线、预测和群集。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">聚合计算函数</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">多维数据集数据源已预先聚合，因此不支持聚合函数，例如 <code>SUM()</code>、<code>AVG()</code> 和 <code>CNT()</code>。<p>可以使用表计算在 Tableau 中对多维数据集中的单元格级别结果执行聚合运算。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">别名</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">多维数据集数据库的别名由多维数据集的设计员进行创建，并且可以通过从“数据”菜单中选择数据源，然后选择<span class="uicontrol">“别名文件”</span>在 Tableau 中激活。请与数据库管理员联系，了解您的数据库是否有可用的别名。Microsoft Analysis Services 数据库不支持别名。<p>默认情况下，每个维度的每个成员的别名最初定义为原始成员名称。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">数据桶</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">对于多维数据集数据源，<span class="uicontrol">“创建数据桶”</span>命令无法用于度量。<p>然而，您可以写入一个使用多维数据集单元格结果并将它们放入数据桶中的计算。例如：</p><p><code>str((INT([Internet Sales Amount]/1000)) * 1000)</code></p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">多维数据集 KPI 数据类型</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">连接到 Microsoft Analysis Services 后，在多维数据集中定义的任何 KPI 计算都不可用。<p>但是，您可以在 Tableau 中编写自己的 KPI 计算。也可以使用 Tableau 参数来创建非常灵活的 KPI 假设分析。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/kpi.htm" class="xref">显示关键进度指标</a>。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">多维数据集 Lag 函数</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">对于多维数据集数据源，您无法在 Tableau 计算编辑器中使用多维数据集 Lag 函数。您可以改用 Tableau 表计算来计算某些百分比和总计。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/calculations_tablecalculations.htm" class="xref">使用表计算转换值</a>。<p>或者，您可以使用计算成员直接在 Tableau 中使用 MDX Lag 函数。例如：</p><p><code>Avg
( { [Date].[Calendar].CurrentMember.Lag(4) : [Date].[Calendar].CurrentMember }
, [Measures].[Internet Sales Amount]
)
</code></p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">自定义多维表达式 (MDX) 语句</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">连接到多维数据集后，无法建立自定义 MDX 语句连接。需要在服务器上创建所有子多维数据集定义，方法是实施必要的多维数据集透视图、分区、维度或单元格安全性。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">数据混合</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">在 Tableau 中，多维数据集数据源只能用作数据混合的主数据源。不能将它们用作辅助数据源。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/multipleconnections_troubleshooting.htm" class="xref">数据混合疑难解答</a>。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">日期维度</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">对于多维数据集数据源，日期维度通常组织为包含年、季度和月等级别的分层结构。此外，有些多维数据源还启用了时间智能，以便能够以不同方式来查看这些数据级别，例如月（按年）、月（按季度）、周末等。这些级别表示为分层结构的属性。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/dates.htm" class="xref">日期和时间</a>。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">数据源筛选器</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">数据源筛选器无法用于多维数据集数据源。在 Tableau 中进行分析之前，必须先在多维数据集中定义所有字段值。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">数据提取</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">您无法从大多数多维数据集数据源中创建数据提取。多维数据集和关系数据源具有不兼容的数据结构，这会导致在大多数情况下无法从多维数据集中提取数据并将其存储在关系数据源（例如数据引擎）中。<p>从 10.4 开始，您无需 Tableau 提供的特殊产品密钥也可创建 SAP BW 数据提取。有关 SAP BW 数据提取的支持和限制的信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/examples_sapbw.htm" class="xref">SAP NetWeaver Business Warehouse</a>。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">筛选器</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">显示多维数据集维度的筛选器时，该维度的所有分层结构层都将包含在此筛选器中。例如：<p><img src="https://help.tableau.com/v0.0/pro/desktop/zh-cn/Img/cube1.png" alt="分层格式的产品类别和子类别的详细列表。"></p><p>您可以使用多维数据集属性作为筛选器，以只显示单个级别而不是分层结构。在“数据”窗格中，属性显示在“维度”部分中，并由此图标指明： <img src="https://help.tableau.com/v0.0/pro/desktop/zh-cn/Img/symbol_cube_attribute.png" alt="多维数据集（多维）数据源的属性。"></p><p>切片筛选器对多维数据集数据源的行为与对关系数据源的行为不同。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/filtering_calculation.htm" class="xref">创建切片筛选器</a>。</p><p>某些维度筛选器卡选项不可用。例如，单值（下拉列表）、多个值（自定义列表）等。相反，视图中显示的维度筛选器会保留其分层外观，并且不能更改为特定的列表类型。您可以创建包含分层结构中的特定值的 Tableau 集，然后使用该集作为视图中具有预期筛选器选项的筛选器（在“数据”窗格中右键单击该集，然后单击<span class="uicontrol">“显示筛选器”</span>）。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">组</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">使用多维数据集数据源时，无法创建组。任何分组概念都应在多维数据集中预定义为维度属性或多维数据集组。<p>但是，可以使用计算成员直接在 Tableau 中编写多维表达式 (MDX) 以创建组。例如：</p><p><code>[Customer].[Customer Geography].[France] + [Customer].[Customer Geography].[Germany]
</code></p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">分层结构</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">对于多维数据集数据源，必须在分析之前在多维数据集中定义分层结构。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">参数</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">对于多维数据集数据源，您无法使用参数值在 MDX 计算中筛选维度。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">发布</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">使用多维数据集数据源的工作簿可以发布到 Tableau Server，但不支持直通连接。这意味着您不能使用此类数据源从 Tableau Server 建立连接。这还意味着您不能在 Tableau Server 中使用该数据源创建工作簿。有关详细信息，请参见 Tableau Server 帮助中的<a href="https://help.tableau.com/current/server/zh-cn/datasource_cube.htm" target="_blank">多维数据集数据源</a>。<p>通过将多维数据集数据源发布到 Tableau Server，您可以将该数据源存储在服务器上。但是，要使用该数据源，您必须将其下载到 <span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span> 并在本地使用它。</p><p>无法将使用多维数据集数据源的工作簿发布到 Tableau Cloud。</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">集</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">多维数据集数据源支持将数据筛选至所选成员及其所有下级的分层集。有关详细信息，请参见<a href="https://help.tableau.com/v0.0/pro/desktop/zh-cn/sortgroup_sets_create.htm#Examples" class="xref">集示例</a>。</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Tableau 字符串函数</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p>对于多维数据集数据源，维度在计算编辑器中不可用。</p><p>但是，您可以使用计算成员在 Tableau 内编写 MDX 来操作维度值。例如：</p><p><code>LEFT([Product].[Product Categories].DataMember.MemberValue,LEN([Product].[Product Categories].DataMember.MemberValue)-5)</code></p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">类型转换</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">对于多维数据集数据源，某些类型转换函数在计算编辑器中不可用。通常，应在分析之前在多维数据集中定义数据类型转换。<p>尤其是，在 Tableau 中将多维数据集维度的数据类型更改为日期有时会提供不正确的信息。某些多维数据集维度支持此功能，具体情况视多维数据集中日期的格式设置方式而定。</p><p>您可以使用计算成员在 Tableau 中直接编写多维表达式 (MDX)，以将多维数据集维度的数据类型更改为日期。例如：</p><p><code>CDATE([Date].[Date].CurrentMember.MemberValue)
</code></p></td></tr></tbody></table>

## 此部分中的其他文章