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

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

关系

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

关系是为分析合并来自多个表的数据的一种动态、灵活的方式。关系描述两个独立逻辑表如何相互关联,但不将表合并在一起(什么是逻辑表?)。在表之间创建关系时,表将保持独立(规范化),同时保持其本机详细级别和域。您可以使用关系来创建多事实数据模型。

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

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

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

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

我们建议使用关系作为合并数据的第一种方法,因为它使数据准备和分析更加轻松直观。仅在绝对需要时才使用联接。当您需要进行以下操作时,可能仍然要使用联接:

  • 继续使用已升级到 2020.2 的 2020.2 之前的 Tableau 版本中数据源
  • 显式使用特定的联接类型
  • 使用支持共享维度的数据模型

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

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

在何处使用联接?

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

尽管关系和混合都支持在不同详细级别进行分析,但它们有明显的差异。如果要合并来自已发布数据源的数据,则混合是当前唯一的选择。

当用于联接两个表的字段依赖于工作表时,还可以选择使用混合。

混合仅支持左联接,而关系支持完全外部联接。混合可以按工作表进行自定义。

关系与混合

数据源、数据模型和连接

数据源发生了什么变化?

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

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

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

什么是逻辑表和物理表?

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

有关详细信息,请参见Tableau 数据模型

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

存在。您可以使用不同连接的表之间的关系来创建数据源。有关详细信息,请参见计划数据源中的合并数据

我是否可以使用不等式运算符或计算字段来定义关系?

在Tableau 2020.3 及更高版本中,您可以基于计算字段创建关系,并使用关系定义中的运算符比较用于关系的字段。

请注意,以下连接器不支持不等式运算符:

  • Google BigQuery
  • MapR
  • Salesforce

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

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

已发布数据源不能相互关联。

不支持

  • 多维数据集数据库不支持新的逻辑层。连接到多维数据集可提供与 2020.2 之前相同的体验。
  • 存储过程:不支持联合、关系或关联。它们在单个逻辑表中表示,并且不允许打开联接/并集画布(物理 层)。
  • Splunk:不支持左联接(因此与逻辑表相关)。
  • JSON:不支持联合、自定义 SQL、联接或关系(仅限并集)。
  • 不支持 LOD 计算的数据源。有关详细信息,请参见详细级别表达式的数据源约束

有限支持

  • Salesforce 和 WDC 标准连接:这些连接表示为逻辑表中的联接表。目前仅支持为单个逻辑表数据源添加它们。标准连接无法联接到现有表。
  • SAP HANA:当连接具有 OLAP 属性集时,不支持关联逻辑表。

支持哪些类型的数据模型?

请参见Tableau 数据模型支持的数据模型架构

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

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

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

如何创建单表数据源?

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

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

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

行级安全性有变化吗?

行级安全性的工作方式相同。有关行级安全性的信息,请参见 Tableau Server 帮助中的行级安全性最佳做法(链接在新窗口中打开)

如何在新的数据模型中使用自定义 SQL?

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

当我在 Tableau 版本 2020.2 及更高版本中打开旧数据源时,它们会发生什么情况?

数据迁移时不会更改,您可以像之前一样继续使用工作簿。

当您在 Tableau 版本 2020.2 及更高版本中打开 2020.2 之前的工作簿或数据源时,数据源将显示为画布中的单个逻辑表,并具有名称“已迁移数据”。您可以重命名“迁移的数据”表。

原始的非规范化数据可能最初是使用联接和并集通过一个或多个表生成的。当您在 Tableau 版本 2020.2 及更高版本中打开数据源时,Tableau 会将非规范化数据模型迁移到新数据模型中的单个逻辑表,以确保数据和工作簿迁移时未发生更改。

若要查看构成单个逻辑表的物理表,请双击该逻辑表,在物理层中将其打开。您将看到其基础物理表,包括联接和并集。

是否需要将迁移的数据源更改为使用关系(而不是联接)?

如果使用物理层联接定义了现有的多表数据源,它们仍将像以前那样工作。您不必更改数据源。您可以将逻辑表与迁移的表相关联,但不能降级逻辑表。

如果要向数据模型中添加更多表,可以考虑更改数据源以使用关系(而不是联接)。这将要求您从物理层中移除表,然后将它们添加到逻辑层。

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

您不能在 Web 上查看和编辑已发布数据源的数据模型。有关详细信息,请参见编辑已发布数据源

是否可以在以前版本的 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 版本 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 中的工作方式。由于多个关联的表具有独立的域并保留其本机详细级别,因此当您将字段拖到视图中时:

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

有关详细信息,请参见不要害怕关系(链接在新窗口中打开)分析如何适用于使用关系的多表数据源可能让您惊讶的维度的不匹配值行为以及多表分析疑难解答

注意:在 Tableau 版本 2024.2 及更高版本中,Tableau 数据模型支持多事实分析和通过多事实关系共享维度。有关详细信息,请参见关于多事实关系数据模型(链接在新窗口中打开)何时使用多事实关系模型(链接在新窗口中打开)构建多事实关系数据模型(链接在新窗口中打开)

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

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

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

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

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

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

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

要查找的内容:

  • 数据模型中的关系是否为它们的表使用正确的匹配字段?
  • 添加多个匹配字段对是否会使关系更准确?
  • 将不同的维度和度量拖到视图中会产生什么结果?
  • 您是否看到预期的行数?
  • 如果从默认设置更改了任何性能选项设置,则您在可视化项中看到的值是否符合预期?如果不符合,您可能需要检查设置,或重置为默认值。

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

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

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

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

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

另一个更高级的选项是使用 GitHub 上的 Tableau 日志查看器(链接在新窗口中打开)。您可以使用 end-protocol.query 筛选特定关键字。有关详细信息,请从 GitHub 中的 Tableau 日志查看器 wiki 页面(链接在新窗口中打开)开始。

界面不同部分的变化

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

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

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

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

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

“数据源”页面的变化

数据网格

查看数据

工作表中的“数据”窗格

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

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

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

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

表计数与记录数相比如何?

在包含逻辑表的数据源,您将不再看到“记录数”字段。每个表以名为 TableName(Count)的字段的形式在该表的详细级别包括其记录的计数。在前面的示例中,您可以看到 Addresses(Count)、Customers(Count)LineItems(Count)

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

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

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

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

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

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

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

 

感谢您的反馈!您的反馈已成功提交。谢谢!