数据混合疑难解答
使用数据混合来合并不同数据源中的数据时,可能会出现一些常见问题。本主题列出了它们,并介绍如何应对每种情况。
混合数据源时的常见警告和错误
不存在与主数据源的关系
在将字段从辅助数据源拖到视图上时,可能会看到一个显示以下内容的警告:
无法从 [辅助数据源名称] 数据源使用字段,因为与主数据源没有混合关系。在“数据”窗格中,切换到 [辅助数据源名称] 数据源,并至少单击一个链接图标以混合这些数据源。
此警告在辅助数据源中没有活动链接时出现
例如,假定您有两个通过“State”(州/省/市/自治区)和“Date”(日期)字段关联的数据源。在辅助数据源中,这些字段中的至少一个字段的旁边必须有活动链接图标 ()。您可通过在“数据”窗格中单击断开的链接图标 ()i或在视图中从主数据源使用链接字段来激活链接。
辅助数据源与主数据源之间不能有任何链接。在“数据”窗格中查找链接图标。Tableau 会自动链接具有相同名称的字段。如果字段没有相同名称,则您必须定义字段之间的链接。有关详细信息,请参见混合您的数据。
主要和辅助连接来自相同数据源中的表
在将字段从辅助数据源拖到视图上时,可能会看到一个显示以下内容的警告:
主要和辅助连接来自相同数据源中的表。使用“数据”菜单加入数据,而不是联接连接。联接可以集成来自许多表的数据,并可以改进性能和筛选功能。
当工作簿包含连接到同一数据库的单独数据源时,会出现此警告。尽管可以以这种方式合并数据,但 Tableau 建议您改为使用联接或关系来合并来自同一数据库的数据,因为它们可以利用数据库的某些本机优化项,以混合无法实现的方式进行合并。
无法混合辅助数据源,因为一个或多个字段使用一个未支持的聚合
数据混合在非累加聚合(例如 COUNTD、MEDIAN 和 RAWSQLAGG)方面有一些限制。非累加聚合是指生成的结果无法沿维度聚合的聚合函数。作为替代,这些值必须要单独计算。除 MAX 和 MIN 外的所有数字函数都是非累加聚合。有关详细信息,请参见Tableau 函数(按类别)。
这些限制会导致视图中的字段在某些情况下变为无效。如果将鼠标光标悬停在其中一个无效字段上,您将看到以下错误:
无法混合辅助数据源,因为一个或多个字段使用一个未支持的聚合。
由于以下原因之一,可能会发生此错误:
主数据源中的非累加聚合: 只有当数据源中的数据来自允许使用临时表的关系数据库时,主数据源中才支持非累加聚合。为了解决此问题,请考虑创建数据源的数据提取。数据提取支持临时表。
辅助数据源中的非累加聚合:只有在视图中包括主数据源中的链接字段,并且视图中未包括辅助数据源中的非累加聚合维度时,辅助数据源中才支持非累加聚合。某些数字函数在包括累加聚合的情况下仍然可用。例如,使用 ROUND(SUM([Sales]),1),而不是 ROUND([Sales],1)。
使用实时连接的多连接数据源中的非累加聚合: 使用实时连接来连接到数据的多连接数据源不支持临时表。因此,如果使用通过实时连接来连接到数据的多连接数据源,将无法借助非累加聚合来使用混合功能。为了解决此问题,请考虑创建多连接数据源的数据提取。数据提取支持临时表。
辅助数据源中的 LOD 表达式:如果在使用数据混合的视图中使用详细级别表达式,也可能会发生此错误。为了解决该错误,请确保主数据源中的链接字段位于视图中,然后您再使用辅助数据源中的 LOD 表达式,并从辅助数据源中移除任何维度,包括维度筛选器。
包含逻辑表的数据源不能用作数据混合的辅助数据源
只要满足以下条件,辅助数据源就可以使用逻辑连接:
- 来自主数据源的所有活动链接字段必须包含在除“筛选器”功能区之外的功能区上的视图中
- 辅助数据源中的所有字段会聚合,包括维度
工作表中的星号显示
在混合数据时,请确保主数据源中的每个标记在辅助数据源中只有一个匹配值。如果有多个匹配值,则您会在混合数据后生成的视图中看到一个星号。
例如,假设您有以下两个数据源:Population 和 Superstore。主数据源 Population 具有名为“State”(省/市/自治区)的字段。辅助数据源 Superstore 包含名为“State”(省/市/自治区)和“Segment”(细分)的字段。在辅助数据源中,每个省/市/自治区都具有多个细分。例如,阿拉巴马州有以下三个细分:“Consumer”(消费者)、“Corporate”(公司)和“Home Office”(家庭办公室)。
主数据源 | 辅助数据源 |
在“State”(州/省/市/自治区)字段上混合两个数据源时,可以创建一个链接,其中单个州/省/市/自治区值(在主数据源中)可以有多个段值(在辅助数据源中)。在此案例中,对于主数据源中每个相应的省/市/自治区值,其辅助数据源中细分的多个值可能会在视图中产生星号,如以下图像中所示。
混合数据
解决工作表中出现星号的问题
通过确保主数据源中的每个标记在辅助数据源中只有一个匹配值来避免工作表中出现星号。虽然确保这一点的方式取决于您尝试创建的数据和视图,但请考虑以下其中一项建议以解决工作表中出现星号的问题。
将主数据源中较高粒度级别的字段添加到工作表中。
例如,假设您有一个类似于上面所使用示例的视图。考虑将诸如“City”(城市)之类的字段添加到工作表中,因为它的值比“State”(州/省/市/自治区)之类的字段具有更高的粒度级别。
重建视图以相互切换主数据源和辅助数据源。通常,您应该将值具有较高粒度级别的数据源设为主数据源。
例如,假设您有一个类似于上面所使用示例的视图。考虑将 Superstore 设为主数据源,将 Population 设为辅助数据源。
在混合数据源后出现 Null 值
在使用数据混合时,视图有时会出现 null 值,取代了所需的数据。由于以下一些原因,可能会出现 Null 值:
对于主数据源中的对应值,辅助数据源未包含值。
您混合的字段的数据类型不同。
主数据源与辅助数据源中的值使用不同的大小写。
数据混合的工作方式是根据链接字段用辅助数据源中的数据补充主数据源中的数据。这意味着 Tableau 会获取主数据源中的所有数据,但只获取辅助数据源中对应的匹配项。对于主数据源中的对应值,如果 Tableau 在辅助数据源中连一个匹配值也找不到,则会显示 Null 值。
可以通过以下方法来解决此问题:
在辅助数据源中插入数据:在辅助数据源中插入缺少的数据,以便主数据源中的所有记录都有一个匹配项。例如,假设您的主数据源包含美国所有 50 个州的值,但您的辅助数据源仅有美国 30 个州的值。若要解决此问题,可以将美国剩余 20 个州的值添加到辅助数据源的基础数据集中。或者,如果您无法修改基础数据,则您也许能够使用数据混合为字段值指定别名或将字段并入主数据源来解决 Null 值问题。
验证主数据源和辅助数据源中的数据类型是否匹配: 例如,两个数据源均为所混合的字段使用字符串值,或两个字段均应包含数字。如果一个字段包含数字,另一个字段包含字符串,则无法混合这些字段。
验证主数据源和辅助数据源中的值大小写是否匹配:如果一个数据源使用大小写混合的名称,而另一个数据源只使用大写,则您将看到 null 值。有关详细信息,请参见混合数据时显示 null。
发布数据源之后的混合问题
当进行混合两个数据源的字段级别自定义时,自定义基于其中一个数据源(主数据源)。然后,向 Tableau Server 或 Tableau Cloud 发布主数据源和辅助数据源时,包含自定义项(即对辅助数据源的引用)的主数据源不再有效。因为主数据源和辅助数据源之间的混合关系丢失,所以自定义项不再有效。这是因为主数据源和辅助数据源之间的混合关系是在工作簿级别定义的。
例如,假设您有两个数据源:“Store - Main”(商店 - 主要)和“Store - West”(商店 - 西部)。您可以创建字段级别的自定义项(如计算),将来自主数据源“Store - Main”(商店 - 主要)的销售总额与来自辅助数据源“Store - West”(商店 - 西部)的销售总额进行合并。只要将数据源发布到 Tableau Server 或 Tableau Cloud,“Store - Main”(商店 - 主要)中的计算就不再有效。这是因为计算涉及到辅助数据源“Store - West”(商店 - 西部),其位置现在未确定。
若要解决此情况,请执行以下操作:
在创建任何字段级别的自定义项之前,首先发布每个数据源。
连接到每个数据源。
创建一个包含所需字段级别自定义项的工作簿。
将工作簿发布到 Tableau Server。
您可以将此工作簿用作“模板”,以便可以由您和他人共享和下载。
与多维数据集(多维)数据源混合
在 Tableau 中,多维数据集数据源只能用作数据混合的主数据源。不能将它们用作辅助数据源。
其他数据混合问题
有关混合数据时出现的其他问题,请参见以下链接。
有关在计算字段上排序时出现的问题,请参见无法按字段对数据混合度量进行排序。
有关计算排序的问题,请参见数据混合时工具栏中没有排序选项。
无法将辅助数据源中的字段添加到 URL 动作。请参见混合数据源中的字段无法用于 URL 动作。
动作筛选器的行为不符合预期。请参见具有混合数据的动作筛选器未按预期方式工作。
视图中每个日期值后面出现重复的总计。请参见日期字段混合问题。
基础数据显示与混合的数据不同的值。请参见辅助数据源中的基础数据未显示或与混合的数据一致。