关系与联接有何不同
- 版本 :2022.1 及更高版本
适用于: Tableau Desktop, Tableau Online, Tableau Server
关系是为分析合并来自多个表的数据的一种动态、灵活的方式。您无需为关系定义联接类型,因此在创建关系时将不会看到维恩图。
将关系视为两个表之间的协定。当您使用这些表中的字段构建可视化项时,Tableau 会从这些表中引入数据,使用该协定借助适当的联接生成查询。
没有预先选择的联接类型。您只需要选择匹配字段来定义关系(没有联接类型)。Tableau 首先尝试基于现有键约束和匹配字段名称来创建关系。您可以随后检查以确保它们是要使用的字段,或者添加更多字段对以更好地定义表应如何关联。
自动和上下文感知。关系根据分析的时间和上下文来延迟进行联接。Tableau 根据可视化项中使用的字段自动选择联接类型。在分析过程中,Tableau 会智能地调整联接类型,并在数据中保留本机详细级别。您可以在可视化项中字段的详细级别查看聚合,而不必考虑基础联接。您无需使用 LOD 表达式(例如 FIXED)来消除关联表中的重复数据。
灵活。关系可以是多对多,并支持完全外部联接。使用关系合并表时,它类似于为每个可视化项创建自定义、灵活的数据源,所有这些都在工作簿的单个数据源中。由于 Tableau 仅基于可视化项中的字段和筛选器查询所需的表,因此可以构建可用于各种分析流程的数据源。
联接仍可作为数据合并选项使用。双击逻辑表以转到联接画布。有关详细信息,请参见在何处使用联接?
观看视频:有关在 Tableau 中使用关系的简介,请观看这个时长 5 分钟的视频。
注意:本视频中显示的用于编辑关系的界面可能与当前版本略有不同,但具有相同的功能。
另请参见 Action Analytics 中有关关系的视频播客,例如为什么 Tableau 发明了关系?单击 Library(库)中的“Video Podcast”(视频播客)以查看更多信息。
若要了解关系查询工作方式的相关信息,请参见以下 Tableau 博客文章:
关系和联接的特征
关系是为分析合并来自多个表的数据的一种动态、灵活的方式。我们建议使用关系作为合并数据的第一种方法,因为它使数据准备和分析更加轻松直观。仅在绝对需要时才使用联接。
以下是使用关系来合并表的一些优点:
使数据源更易于定义、更改和重用。
能够以正确的详细级别 (LOD) 跨多个表分析更轻松地分析数据。
无需使用 LOD 表达式或 LOD 计算在不同详细级别进行分析。
仅查询具有当前可视化项中所使用字段的表中的数据。
关系
显示为逻辑表之间的灵活关系线
需要您选择两个逻辑表之间的匹配字段
不需要您选择联接类型
使关联表中的所有行和列数据在数据源中可能可用
在数据源中和分析期间保留每个表的详细级别
在多个详细级别创建独立域。在数据源中,表不会合并在一起。
在分析期间,根据正在使用的字段自动创建相应的联接。
不会重复聚合值(当性能选项设置为“多对多”时)
保留不匹配的度量值(当性能选项设置为“某些记录匹配”时)
联接
联接是一种更静态的数据合并方式。联接必须在分析之前提前在物理表之间定义,并且不能在不影响使用该数据源的所有工作表的情况下进行更改。联接的表始终合并为单个表。因此,有时联接的数据会缺少不匹配的值,或重复聚合值。
在物理表之间显示时带有维恩图图标
需要您选择联接类型和联接子句。
联接的物理表将合并到具有固定数据组合的单个逻辑表中
可能会删除不匹配的度量值
如果字段处于不同的详细级别,则可能会导致聚合值重复
支持需要单个数据表的方案,例如数据提取筛选器和聚合
使用关系的要求
在关联表时,定义关系的字段必须具有相同的数据类型。更改“数据源”页面中的数据类型不会更改此要求。Tableau 仍将使用基础数据库中的数据类型进行查询。
不能基于地理字段定义关系。
数据模型中不支持循环关系。
无法定义已发布数据源之间的关系。
限制使用关联表的好处的因素
表中的脏数据(即创建时未考虑结构良好的模型且包含多个表中度量值和维度混合的表)可能会使多表分析更加复杂。
使用数据源筛选器将限制 Tableau 在数据中执行联接剔除的能力。联接剔除是定义 Tableau 如何通过移除不必要的联接来简化查询的术语。
具有许多跨关系的不匹配值的表。
将多个事实数据表与多个维度表相关联(尝试对共享或一致的维度建模)。
在何处使用联接?
您仍然可以在数据源的物理层中指定表之间的联接。双击逻辑表以转到物理层中的“联接/并集”画布并添加联接或并集。
每个顶层逻辑表至少包含一个物理表。打开逻辑表以查看、编辑或创建其物理表之间的联接。右键单击逻辑表,然后单击“打开”。或者,只需双击表即可将其打开。
创建数据源时,数据源有两个层。顶层是数据源的逻辑层。使用关系在逻辑层中的表之间合并数据。
下一个层是数据源的物理层。使用联接在物理层的表之间合并数据。有关详细信息,请参见数据模型中的逻辑表和物理表。