---
schema_version: "1"
id: 3e9e90e8e696706fee255cbb615640e3c16c5e75a28b68417569624a2b6daf13
title: 可组合数据源
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/pro/desktop/datasource_extend_compose.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-cn/datasource_extend_compose.htm
source_site: help.tableau.com
content_type: documentation
content_hash: b005da858dd90cfc2190cbae2a5b73bf4b8ae93f0d282fdba3162b17ce3cc8f0
description: Compose and extend published data sources to combine and republish them without altering originals.
---
[跳转到主要内容](#main-content)

# 可组合数据源

从 Tableau 2026.2 开始，您可以组合已发布数据源 (PDS) 以及扩展和发布已发布数据源。

- **组合已发布数据源**：在数据模型中关联多个已发布数据源，并将组合结果用作新的可发布数据源，同时保持原始数据源不变。
- **发布扩展的已发布数据源**：连接到已发布数据源，覆盖语义定义（例如重命名字段或创建新计算），然后将修改后的版本发布为新数据源。

## 书店示例

考虑两个现有的 PDS，(1) _Bookshop Sales_（书店销售额）和 (2) _Book, Edition, and Publisher_（图书、版本和出版商）。假设每个书商都有自己的销售数据源_“Bookshop Sales”_（书店销售额），而_“Book, Edition, and Publisher”_（图书、版本和出版商）数据源由仓库集中维护。

如果您是本地书商，则可以连接到商店的_“Bookshop Sales”_（书店销售额）和仓库的_“Book, Edition, and Publisher”_（图书、版本和出版商）。在“数据源”选项卡上，为了清楚起见，UI 会在每个单独的数据源周围放置容器。您可以在数据源之间建立关系，以创建新的组合数据源_“Detailed Sales”_（详细销售额）。

![一个名为“Detailed Sales”（详细销售额）的数据模型，其中两个 PDS 通过关系线条连接](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/pds_detailedsales.png)

如果您打开工作表并更改“数据”窗格中的语义，则您是在**扩展**_“Detailed Sales”_（详细销售额）数据源。例如，您可以使用公式 `[Price]*(1-[Discount])` 为**“Sale Price”**（销售价格）创建一个计算字段。**“Price”**（价格）位于_“Book, Edition, and Publisher”_（图书、版本和出版商）的“Edition”（版本）表中，**“Discount”**（折扣）位于_“Bookshop Sales”_（书店销售额）的“Sales”（销售额）并集内。

若要与商店中的其他人共享您的新数据源，您可以将您的工作发布为独立的扩展组合数据源。

## 发布扩展的已发布数据源

在 Tableau 2026.2 及更高版本中，您可以在 PDS 上发布语义覆盖，而不是将这些修改作为本地数据源保留在工作簿中。

1. 连接到已发布数据源。
2. 进行修改，例如添加计算、建立集或更改字段名称和属性。在扩展数据源的上下文中，这些称为**覆盖**。
3. 使用唯一的描述性名称发布您的数据源版本。

## 组合已发布数据源

在 Tableau 2026.2 及更高版本中，多个已发布数据源可以在工作簿或新已发布数据源的 Scratchpad 中相互关联。更好的是，包含多个 PDS 的数据模型可以作为新的已发布数据源发布。

1. 连接到已发布数据源。
2. 从“数据源”选项卡上的画布中，使用**“添加已发布数据源”**按钮连接到其他已发布数据源。
    
    **注意**：仅支持已发布数据源之间的可组合性。不能将本地平面文件直接组合到已发布数据源。首先发布平面文件，然后将其用作已发布数据源。
3. 在跨数据源的表之间设置关系。
4. （可选）根据需要扩展数据源，例如更改字段名称或创建计算。
5. （可选）使用唯一的描述性名称进行发布。

## 继承和数据新鲜度

**连接类型**

在扩展数据源或组合数据源中使用已发布数据源时，请仔细考虑是要实时连接还是采用数据提取。

在前面的示例中，如果仓库向_“Book, Edition, and Publisher”_（图书、版本和出版商）数据源添加了新书名，这些书名何时显示在_“Detailed Sales”_（详细销售额）数据源将取决于连接类型。

- 如果您实时连接，则在仓库更新其数据源时，_“Detailed Sales”_（详细销售额）会在每次重新加载或刷新数据时反映新数据。
- 如果进行了数据提取，则_“Detailed Sales”_（详细销售额）包含_“Book, Edition, and Publisher”_（图书、版本和出版商）的数据提取，而不是其基础数据源的新数据提取。在_“Detailed Sales”_（详细销售额）中查找新书名时，请考虑_“Book, Edition, and Publisher”_（图书、版本和出版商）何时刷新。

**覆盖**

扩展数据源时，您是在基础 PDS 之上叠加变更，而不是直接更改源。如果覆盖基础数据源的属性（例如重命名字段），对基础数据源的更新不会撤消您所做的更改。

您可以随时打开本地数据源的菜单并查看所做的覆盖。

![显示查看覆盖选项的数据源菜单](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/pds_reviewoverridesmenu.png)

**“查看覆盖”**对话框提供已添加、更改或以其他方式修改的内容的摘要。您只需单击一下便可选择多个覆盖进行重置。

![示例“查看覆盖”对话框，显示已添加、更改和隐藏的覆盖](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/pds_reviewoverridesdialog.png)

在 Tableau 2026.2 中，“查看覆盖”对话框跟踪：

- 重命名字段
- 创建计算
- 创建组
- 创建数据桶
- 合并字段
- 隐藏字段

**注意**：该路线图包括其他覆盖的计划，例如修改字段描述；离散/连续和度量/维度之间的变化；数据类型；财年开始；以及排序、颜色和形状的默认值。但是，从 Tableau 2026.2 开始，将不会在覆盖中跟踪这些内容。

## 术语详细信息

**已发布数据源 (PDS)** 是以独立资产形式发布到 Tableau Cloud 或 Tableau Server 的数据源。PDS 可在 Web 上构建，也可以从 Tableau Desktop 发布。已发布数据源既可以是扩展的，也可以是组合的。扩展是指覆盖（即添加或更改）语义定义。组合涉及合并多个已发布数据源。

本地数据源是工作簿中存在的数据源。本地数据源可以是平面文件、与数据库的直接或虚拟连接，或与已发布数据源的连接。**扩展**发生在本地数据源内部。Tableau 2026.2 中的新行为是能够发布扩展数据源，而不是将扩展作为本地数据源保留在工作簿中。

**组合数据源**是指其数据模型包含两个或多个已发布数据源的数据源。在 Tableau 2026.2 之前，只能使用数据混合技术逐张合并已发布数据源，数据混合只能作为工作簿发布，而不能作为 PDS 发布。在 Tableau 2026.2 及更高版本中，您可以将已发布数据源相互关联，并将结果发布为新数据源。

## 访问数据源

使用扩展数据源或组合数据源时，您必须能够访问所有相关数据源。没有对组合数据源的部分访问权限。也就是说，如果用户没有连接到前面示例中的_“Bookshop Sales”_（书店销售额）数据源的权限，则该用户将完全无法访问_“Detailed Sales”_（详细销售额）组合数据源。

## 依赖项限制

组合或扩展数据源构建在其他已发布数据源之上，形成依赖关系链。为了保护性能和可靠性，Tableau 限制了一个组合数据源或扩展数据源可以依赖的已发布数据源的数量，以及它们可以嵌套的深度。

- **总依赖项**：数据源的上游世系中已发布数据源的数量（本身加上它所依赖的每个 PDS）。
    
    - 如果同一已发布数据源在 PDS 的依赖关系链中出现多次，则 Tableau 会为每次使用对其计数一次。在多个位置重用相同上游 PDS 的数据源可能会达到总依赖项限制，即使不同的 PDS 数量较少也是如此。
- **嵌套深度**：最长嵌套源链的长度。直接基于一个已发布数据源构建的数据源的深度为 1。

<table style="width: 100%;"><colgroup><col><col><col><col></colgroup><tbody><tr><td>限制</td><td>默认值</td><td>错误消息</td><td>检查时间</td></tr><tr><td>每个组合数据源的数据源</td><td>500</td><td>此组合数据源中的数据源太多。</td><td>打开或使用组合数据源，包括使用数据源加载工作簿。</td></tr><tr><td>总依赖项</td><td>100</td><td>不支持发布具有超过 100 个 PDS 依赖项的数据源。</td><td>您发布一个组合数据源。</td></tr><tr><td>嵌套深度</td><td>20</td><td>不支持发布包含超过 20 个嵌套层的数据源。</td><td>您发布一个组合数据源。</td></tr></tbody></table>

请务必注意，这些依赖项限制是工程保障措施，大多数数据源永远不会达到这些限制。

### 为什么发布限制低于总体限制

如果上游源稍后添加自己的依赖项，则将发布限制 (100/20) 保持低于总体限制 (500) 可以防止错误。即使上游出现复杂情况，此缓冲区也可以帮助您的下游源继续正常运行。

### 对组合已发布数据源的限制

**数据提取**

在 Tableau 2026.2 中，只能将实时组合数据源作为独立数据源资产发布。不过，您可以发布包含已提取的组合数据源的工作簿。必须在 Tableau Desktop 中进行数据提取，因为在此版本中无法在 Web 上提取组合数据源。这些数据提取限制将在未来版本中取消。

**数据连接**

并非所有数据连接器都支持组合数据源。组合数据源在多维数据集或使用存储过程的连接中不可用。此外，连接器必须支持跨数据库联接、左联接和详细级别表达式 (LOD)，这是支持可组合数据源的先决条件。

特定不兼容的数据连接器包括：

- Firebird 3
- Google Analytics（分析）
- JSON（因为 JSON 仅支持单个表形式）
- Microsoft SQL Server Analysis Services
- Odata
- Oracle Essbase
- Salesforce
- SAP NetWeaver Business Warehouse (BW)
- Splunk
- Teradata OLAP Connector

**组合数据源中的跨数据库联接**

在 Tableau 2026.2 中，跨数据库联接在所有情况下都用于组合数据源，即使 PDS 使用相同的连接和数据库凭据。为了避免在相同连接中出现这种行为，性能优化已列入未来版本的路线图。

**嵌入式凭据**

在可组合数据源的第一个版本（2026 年 6 月和 7 月）中，组合数据源中不会为已发布数据源保留嵌入式凭据。相反，系统会提示用户输入数据库用户名和密码，而不管基础数据源的嵌入式凭据如何。即将在 Tableau Cloud 的修补程序中提供修复，并在即将发布的 Tableau Server 和 Tableau Desktop 2026.2 维护版本中提供修复。