---
schema_version: "1"
id: 7d3b7a6ff142c53426ffff99dc7ab3f88b7f66493a2838ec48618d97351123df
title: 有关关系、数据模型和数据源的问题
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/public/desktop/datasource_datamodel_faq.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel_faq.htm
source_site: help.tableau.com
content_type: documentation
content_hash: bb5a6500d9d0a069dcfae26c3e00884950d81ee8ba0e9e0248b9eecfb3ab168d
description: Answers to common questions about relationships, the data model, and data sources in Tableau.
---
[跳转到主要内容](#main-content)

# 有关关系、数据模型和数据源的问题

以下是我们听到的有关 Tableau 中的数据建模和关系的一些问题。如果您有一个不在此列表中的问题，请单击此帮助页面右下角的蓝色**“发送反馈”**图标与我们共享（单击“是”或“否”，在“评论”字段中添加您的问题，然后单击“发送”）。

## 关系

### 关系只是联接的不同名称吗？

关系是为分析合并来自多个表的数据的一种动态、灵活的方式。关系描述两个独立逻辑表如何相互关联，但不将表合并在一起（[什么是逻辑表？](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel.htm)）。在表之间创建关系时，表将保持独立（规范化），同时保持其本机详细级别和域。您可以使用关系来创建多事实数据模型或合并已发布数据源。

不能为关系设置联接类型。关系根据分析的时间和上下文来延迟进行联接。Tableau 根据可视化项中使用的当前字段自动选择应使用的联接类型。在分析过程中，Tableau 会智能地调整联接类型，并在数据中保留本机详细级别。您可以在可视化项中字段的详细级别查看聚合，而不必考虑基础联接。

关系可以是多对多，并支持完全外部联接。您无需使用 LOD 表达式（例如 FIXED）来消除关联表中的重复数据。

我们建议使用关系作为合并数据的第一种方法，因为它使数据准备和分析更加轻松直观。仅在绝对需要时才使用联接。

**了解更多信息**：有关使用关系合并数据的相关信息，也可参见以下主题和博客文章：

- [关联您的数据](https://help.tableau.com/current/pro/desktop/zh-cn/relate_tables.htm)
- [Tableau 数据模型](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel.htm)
- [关系与联接有何不同](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_relationships_learnmorepage.htm)
- [使用关系进行多表数据分析](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_multitable_normalized.htm)
- [不要害怕关系](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_dont_be_scared.htm)
- [关系，第 1 部分：在 Tableau 中引入新的数据建模](https://www.tableau.com/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model)
- [关系，第 2 部分：提示和技巧](https://www.tableau.com/about/blog/2020/5/relationships-part-2-tips-and-tricks)
- [关系，第 3 部分：跨多个相关表提出问题](https://www.tableau.com/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables)

另请参见 [Action Analytics](https://action-analytics.com/library/) 中有关关系的视频播客，例如[为什么 Tableau 发明了关系？](https://action-analytics.com/ep-1-why-did-tableau-invent-relationships/)单击 [Library（库）](https://action-analytics.com/library/)中的“Video Podcast”（视频播客）以查看更多信息。

### 是否可以在逻辑表之间使用联接？

您必须在逻辑表之间使用关系。只能在逻辑表中包含的物理表之间使用联接。双击逻辑表以将其打开。

我们建议使用关系作为合并数据的第一种方法，因为它使数据准备和分析更加轻松直观。仅在绝对需要（例如显式设置特定联接类型）时才使用联接。

### 在何处使用联接？我仍然可以使用联接合并表数据吗？

联接仍可作为数据合并选项使用。您只需打开一个逻辑表即可处理联接（双击逻辑表将其打开）。您联接的表将合并到单个逻辑表中。

[在何处使用联接？](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_relationships_learnmorepage.htm#WhereAreJoins)

### 关系像混合吗？何时应该使用混合？

尽管关系和混合都支持在不同详细级别进行分析，但它们有明显的差异。当用于联接两个表的字段依赖于工作表时，可以选择使用混合。混合仅支持左联接，而关系支持完全外部联接。混合可以按工作表进行自定义。

[关系与混合](https://help.tableau.com/v0.0/public/desktop/zh-cn/relate_tables.htm#Relation)

## 数据源、数据模型和连接

### 数据源发生了什么变化？

在 Tableau 版本 2020.2 及更低版本中，在“数据源”页面中使用联接和并集合并的表在数据源中组成数据模型。数据合并到单个平面表中。

从 Tableau 2020.2 开始，Tableau 的数据模型中添加了新的逻辑层。逻辑层和关系扩展了将所需数据引入 Tableau 的选项。您现在可以创建具有不同详细级别的多个表的规范化数据源。关联的表不会合并；它们保持独立。使用关系可以更加灵活直观地使跨多个表创建和分析数据。

您仍然可以在 Tableau 中创建单表数据源。您可以使用联接、并集、自定义 SQL 等的组合来构建逻辑表。Tableau 中单表分析的行为未改变。对包含维度和度量混合的单个逻辑表进行分析的工作方式与 Tableau 2020.2 之前的版本一样。将工作簿或数据源升级到 Tableau 版本 2020.2 及更高版本时，将包含表示 2020.2 之前的数据源的单个逻辑表，并且它的工作方式与以前相同。

### 什么是逻辑表和物理表？

从Tableau 版本 2020.2 开始，数据源使用的数据模型具有两个层：一个逻辑层（您可以在其中关联表），以及一个物理层（可在其中联接或合并表）。拖到逻辑层的表使用关系，称为逻辑表。每个逻辑表都可以在物理层中再包含一个物理表。

有关详细信息，请参见[Tableau 数据模型](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel.htm)。

### 不同连接中的表之间是否存在关系吗？

存在。您可以使用不同连接的表之间的关系来创建数据源。有关详细信息，请参见[计划数据源](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_plan.htm)中的[合并数据](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_plan.htm#Combine)。

### 所有连接类型都支持逻辑表和关系吗？

完全支持大多数关系连接类型。多维数据集、SAP HANA（具有 OLAP 属性）、JSON 和 Google Analytics（分析）仅支持单个逻辑表。存储过程只能在单个逻辑表中使用。

不支持

- 多维数据集数据库不支持新的逻辑层。连接到多维数据集可提供与 2020.2 之前相同的体验。
- 存储过程：不支持联合、关系或关联。它们在单个逻辑表中表示，并且不允许打开联接/并集画布（物理 层）。
- Splunk：不支持左联接（因此与逻辑表相关）。
- JSON：不支持联合、自定义 SQL、联接或关系（仅限并集）。
- 不支持 LOD 计算的数据源。有关详细信息，请参见[详细级别表达式的数据源约束](https://help.tableau.com/v0.0/public/desktop/zh-cn/calculations_calculatedfields_lod_overview.htm#Data)。

有限支持

- Salesforce 和 WDC 标准连接：这些连接表示为逻辑表中的联接表。目前仅支持为单个逻辑表数据源添加它们。标准连接无法联接到现有表。
- SAP HANA：当连接具有 OLAP 属性集时，不支持关联逻辑表。
- 不支持使用不等式运算符来定义关系;
    - Google BigQuery
    - MapR
    - Salesforce

### 支持哪些类型的数据模型？

请参见[Tableau 数据模型](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel.htm)和[支持的数据模型架构](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel.htm#ExamplesStarSnowflake)

### 是否有我可以使用的“数据源”页面的经典视图？

“数据源”页面画布的物理层基本上是 Tableau 早期版本中“数据源”页面的“经典视图”。

在 Tableau 版本 2020.2 及更高版本中，“数据源”画布的默认视图是逻辑层。您必须双击“数据源”页面画布中的逻辑表才能转到画布的物理层。

### 如何创建单表数据源？

将单个表拖动到“数据源”页面的画布（逻辑层）中。在工作表中，使用“数据”窗格该表中的字段进行分析。

您可以通过双击表在单个逻辑表内添加更多数据。这将打开“数据源”页面画布的物理层。如果需要使用联接或并集，可以将要联接或合并的表拖到物理层画布中。物理表将合并到其单个逻辑表中。

![具有两个联接的数据模型。](/tableau/next/zh-cn/public/desktop/zh-cn/Img/data_model_singletable_joins.gif)

此示例在数据源的“关系”画布（逻辑层）中显示“Book”（书籍）表。双击“Book”（书籍）逻辑表将打开“联接/并集”画布（物理层）。联接会将“Award”（奖项）和“Info”（信息）表与“Book”（书籍）表合并。

### 行级安全性有变化吗？

行级安全性的工作方式相同。有关行级安全性的信息，请参见 Tableau Server 帮助中的[行级安全性最佳做法](https://help.tableau.com/current/server/zh-cn/rls_bestpractices.htm)。

### 如何使用自定义 SQL？

双击“数据源”页面左侧窗格中的“新建自定义 SQL”选项。自定义 SQL 将由单个逻辑表包含。

### 如何查看或编辑 Web 上的数据模型？

您不能在 Web 上查看和编辑已发布数据源的数据模型。有关详细信息，请参见[编辑已发布数据源](https://help.tableau.com/v0.0/public/desktop/zh-cn/edit_datasources.htm)。

### 是否可以在以前版本的 Tableau Desktop（版本 2020.1 及更低版本）中使用 Tableau Server 或 Tableau Cloud（版本 2020.2 及更高版本）上的数据源？

如果您尝试在以前版本的 Tableau Desktop（版本 2020.1 及更低版本）中打开来自 Tableau Server 或 Tableau Cloud 版本 2020.2 及更高版本的已发布数据源或已发布工作簿，则与数据源中的根表相关的任何逻辑表都将被移除。只有根表（添加到该数据源模型的第一个表）将保留。

如果尝试在以前版本的 Tableau 中使用本地数据源：

- Tableau 会显示一条警告，指出数据源来自与以前版本不兼容的更高版本的 Tableau。
- 在“数据源”页面上，只有根表将保留在数据源中。
- 在 Tableau Desktop 工作表的“数据”窗格中，Tableau 会在不属于根表的受影响字段旁边显示错误（红色感叹号）。

如果您尝试在以前版本的 Tableau 中使用已发布数据源：

- Tableau 会显示一条警告，指出数据源来自与以前版本不兼容的更高版本的 Tableau。
- 在 Tableau Desktop 工作表的“数据”窗格中，Tableau 在所选数据源旁边显示错误（红色感叹号）以及需要更新连接的消息。单击“**显示详细信息**”以了解有关错误的详细信息。

### 已发布的数据源能否相互关联？

是的，从 Tableau 2026.2 开始可以相互关联。对于早期版本，请改用数据混合。

### 数据提取如何与相关逻辑表配合使用？

数据提取数据现在基于逻辑表（替换“单个表”选项）或物理表（替换“多个表”选项）进行存储。有关详细信息，请参见[提取数据](https://help.tableau.com/v0.0/public/desktop/zh-cn/extracting_data.htm#extract)。

### 如果我需要降级到 Tableau 版本 2020.1 及更低版本，逻辑表之间的关系会发生什么情况？

如果将工作簿降级为 Tableau 版本 2020.1 及更低版本，则与模型中根表相关的任何逻辑表都将从数据源中移除。只有根表（添加到该模型的第一个表）将保留。

工作簿中使用了逻辑表中的字段的所有工作表（非根表）将变为无效，因为它们的表和字段已从数据模型中移除。

降级最适合于包含单表数据源的工作簿。

### 新的数据模型如何使用多维数据集？

多维数据集的工作方式与 Tableau 的早期版本相同。多维数据集数据源将显示为单表数据源，就像现在一样。无法使用多维数据集数据创建关系。

## 与其他 Tableau 功能和产品的交互

### “数据解释”功能是否适用于使用关系的多表数据源？

在 Tableau 版本 2020.3 或更高版本中，您可以将“数据解释”功能与包含多个相关表的数据源一起使用。必须正确设置关系的关联基数和引用完整性设置，“数据解释”功能才能分析多表相关数据。

在 Tableau 版本 2020.2 及更低版本中，您只能将“数据解释”功能与单表数据源一起使用。数据源可以具有由一个或多个物理表定义的单个逻辑表。

### “数据问答”(Ask Data) 功能是否能与多表数据源配合使用？

“数据问答”(Ask Data) 功能完全支持多表规范化数据源？

### 新的数据建模功能对使用 Tableau Bridge 有怎样的影响？

使用最新版本的 Tableau Bridge 应提供与 Tableau 版本 2020.2 及更高版本数据建模功能的完全兼容性。

### 何时应该使用 Tableau Prep 与 Tableau Desktop、Tableau Cloud 或 Tableau Server 中的制作功能来创建数据源？

Tableau Prep 清理数据，并创建包含物理表的流程、数据提取和已发布数据源。

在 Tableau Desktop 以及 Tableau Cloud 和 Tableau Server Web 制作中，您可以创建使用规范化数据模型的数据源。这些数据模型可以由逻辑表和物理表组成，并且数据源可以保存为实时数据源或数据提取。

只有逻辑表可以相关。可以联接和合并物理表。

## 使用多表数据源进行分析

### 使用关系的多表数据源的分析工作方式是否不同？

使用具有多个相关表的数据源会影响分析在 Tableau 中的工作方式。由于多个关联的表具有独立的域并保留其本机详细级别，因此当您将字段拖到视图中时：

- 系统将在数据的自然详细级别对数据进行查询。
- 仅查询与可视化项相关的数据。
- 表之间的关系会影响查询的结果。生成可视化项的流程可能因字段表在数据模型中彼此相关的方式或它们是否没有直接相关而异。

有关详细信息，请参见[不要害怕关系](https://help.tableau.com/current/pro/desktop/zh-cn/datasource_dont_be_scared.htm)、[分析如何适用于使用关系的数据源](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_multitable_analysis_overview.htm)、[可能让您惊讶的维度的不匹配值行为](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel_whatschanged.htm#Unmatche)以及[多表分析疑难解答](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_multitable_analysis_overview.htm#Troubles)。

**注意**：在 Tableau 版本 2024.2 及更高版本中，Tableau 数据模型支持多事实分析和通过多事实关系共享维度。有关详细信息，请参见[关于多事实关系数据模型](https://help.tableau.com/current/pro/desktop/zh-cn/datasource_mfr_multiple_base_tables.htm)、[何时使用多事实关系模型](https://help.tableau.com/current/pro/desktop/zh-cn/datasource_mfr_when_to_use.htm)和[构建多事实关系数据模型](https://help.tableau.com/current/pro/desktop/zh-cn/datasource_mfr_build.htm)。

### LOD 与新数据模型的工作方式相同吗？何时应该使用 LOD？

LOD 表达式和计算的工作方式相同。由于 Tableau 现在可理解输入表的详细级别 (LOD)，因此应该无需使用 LOD 计算来消除由于联接而导致的不需要的重复。

您可能仍然希望使用 LOD 计算来：

- 处理源表中不需要的重复。
- 计算多级聚合（例如，总和的平均值）
- 进行群组分析（例如计算每个客户的第一个订单日期）

如果 LOD 计算的维度包含单个表中的字段，则该 LOD 计算将显示在“数据”窗格中其所属的表中。

### 如何判断是否使用关系正确合并了我的数据？

有几个选项可用于验证数据模型以进行分析。为数据源创建模型时，我们建议转到工作表，选择该数据源，然后构建可视化项以浏览记录计数、预期数据、不匹配值、null 或重复的度量值。尝试跨不同的表处理字段，以确保所有内容都符合您的预期。

要查找的内容：

- 数据模型中的关系是否为它们的表使用正确的匹配字段？
- 添加多个匹配字段对是否会使关系更准确？
- 将不同的维度和度量拖到视图中会产生什么结果？
- 您是否看到预期的行数？
- 如果从默认设置更改了任何[性能选项设置](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_relationships_perfoptions.htm)，则您在可视化项中看到的值是否符合预期？如果不符合，您可能需要检查设置，或重置为默认值。

用于验证关系和数据模型的选项：

- 每个表以名为 _TableName（Count）_的字段的形式在该表的详细级别包括其记录的计数。若要查看表的计数，请将其“计数”字段拖到视图中。若要查看所有表的计数，请在“数据”窗格中选择每个表的“计数”字段，然后在“智能显示”中单击“文本表”。
- 在“数据”窗格中单击**“查看数据”**以查看每个表的行数和数据。此外，在开始创建关系之前，在分析之前或期间查看数据源中数据对于让您了解每个表的范围非常有用。有关详细信息，请参见[查看基础数据](https://help.tableau.com/v0.0/public/desktop/zh-cn/inspectdata_viewdata.htm)。
- 将维度拖到行上以在状态栏中查看行数。若要查看不匹配的值，请单击**“分析”**菜单，然后选择“表布局”\>“显示空行”或“显示空列”。您还可以将不同的度量从可视化项中呈现的其中一个表拖到视图，例如 _<YourTable>(Count)_ 。这可确保从该表中看到维度的所有值。

### 我能否查看 Tableau 为关系生成的查询？

如果要查看为关系生成的查询，可以使用 Tableau Desktop 中的性能记录器。

1. 单击“帮助”菜单，然后选择**“设置和性能”**\>**“启动性能记录”**。
2. 将字段拖到视图中以构建可视化项。
3. 单击“帮助”菜单，然后选择**“设置和性能”**\>**“停止性能记录”**。“性能记录”工作簿将自动打开。
4. 在“性能摘要”仪表板中的“按时间排序的事件”下，单击“正在执行的查询”栏并查看下面的查询。

另一个更高级的选项是使用 GitHub 上的 [Tableau 日志查看器](https://github.com/tableau/tableau-log-viewer)。您可以使用 `end-protocol.query` 筛选特定关键字。有关详细信息，请从 GitHub 中的 [Tableau 日志查看器 wiki 页面](https://github.com/tableau/tableau-log-viewer/wiki)开始。

## 界面不同部分的变化

### “数据源”页面发生了怎样的变化？数据网格？查看数据？“数据”窗格？

“数据源”页面（画布、数据网格）、“查看数据”和“数据”窗格已更新，以支持多表分析体验。

数据源画布的第一个视图现在是逻辑层，它是定义关系的位置。数据网格显示每个表的详细级别行数据。

在“数据”窗格中，字段和计算字段按其本机详细级别自动组织。

“查看数据”窗口以正确的详细级别（无需复制）显示行级数据，以便更轻松地进行验证。使用“_表（计数）_”字段获取“数据”窗格中每个表的行计数。

[“数据源”页面的变化](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel_whatschanged.htm#Data)

[数据网格](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel_whatschanged.htm#Data2)

[查看数据](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel_whatschanged.htm#View)

[工作表中的“数据”窗格](https://help.tableau.com/v0.0/public/desktop/zh-cn/datasource_datamodel_whatschanged.htm#Data3)

### Tableau 2020.2 及更高版本中的“查看数据”列顺序更改

当您在 Tableau 2020.2 及更高版本中打开 Tableau 的早期版本的数据源时，列顺序可能会有所不同。列在“查看数据”窗口中可能以不同的方式显示，并且当您将其导出为 CSV 格式时，列顺序可能不同。

需要更改在“查看数据”口中处理列顺序的方式，以支持关系和逻辑表。

如果使用依赖于自定义列顺序的脚本，我们建议使用为“查看数据”使用 Tableau Extensions API，将基础数据下载为 CSV 格式。

### 表计数与记录数相比如何？

在包含逻辑表的数据源，您将不再看到“记录数”字段。每个表以名为 _TableName（Count）_的字段的形式在该表的详细级别包括其记录的计数。在前面的示例中，您可以看到 _Addresses(Count)、__Customers(Count)_ 和 _LineItems(Count)_。

表计数 = 每个表的记录数之和。不能在表的“_计数_”字段上生成计算。_计数_为仅聚合。

**注意**：如果打开在视图中使用“_记录数_”的 2020.2 之前的工作簿，您可能会在“数据”窗格看到“_记录数_”字段。

### 集、组和计算字段显示在哪里？

如果字段属于某个表，它将列在该表下。如果未列出，它将列在“数据”窗格底部的常规区域中。

如果计算字段的所有输入字段都来自同一个表，则计算字段将随其原始字段一起列出。

集和组随其原始字段一起显示在表下方。

不属于特定表的字段显示在该表下方的常规区域中。其中包括：聚合计算、使用多个表中的字段的计算、度量名称和度量值。