Tableau 优课堂 | 第8课:如何进行数据融合

published: 2023-05-08

欢迎观看由优阅达制作的【优课堂】系列视频。第八节课是:如何进行数据融合,你可以下载本视频所用数据集同步实操。


场景概述

如果你有两家零售连锁店:办公之城 和 咖啡连锁。你在 Excel 中记录办公之城的经营数据,在 Access 数据库中记录咖啡连锁的经营数据,为了进行整体分析,如何将这两个不同来源的数据源整合在一起?


混合关系

在 Tableau 中,可以使用 “数据混合” 的方式,将来自多个数据源的数据合并到一个视图中进行分析。如下图所示,左上角的数据窗格有两个数据源:办公之城和咖啡连锁。

我们可以点击数据源名称,轻松在两者之间切换。

数据混合要求两个数据源之间至少有一个公共字段,如果我们熟悉数据库连接,会发现这些公共字段的作用跟连接子句一样进行行级连接,但是数据混合不是行级别连接,而是将单独的查询发送给单独的数据源,并回到 Tableau 中,将数据聚合到同一级别。

在当前连接的数据源中,“办公之城”和“咖啡连锁”都有一个“州/省”字段,这个字段中至少有一个公共成员。

  • 如果字段名称相同,且成员相同,则 Tableau 会自动创建关系;

  • 如果字段名称不同,但成员相同,我们可以手动定义其关系。

我们知道,“办公之城”数据源的“区域”字段和“咖啡连锁”的“地区”字段中,都包含中部、东部、南部和西部,所以我们定义这两个字段是有关系的。

单击菜单栏中的“数据”-“编辑混合关系”,弹出“混合关系”对话框,我们将主数据源选择为办公之城,辅助数据源选择为咖啡连锁,并点击“自定义”按钮。

需要注意的是:Tableau 已在“州/省”字段自动建立了关系。点击“添加”按钮,在主数据源中选择“区域”,辅助数据源中选择“地区”,单击确定。

定义好了公共字段,我们就可以开始数据融合了。


如何混合?

首先,单击 “办公之城” 数据源,将度量“销售额”字段拖至列,将维度“州/省”字段拖至行。

请注意,在数据窗格中,“办公之城”数据源旁边多出一个蓝色复选标记。每当在 Tableau 中连接到多个数据源时,在视图中拖拽那个数据源的字段,该数据源将成为主数据源,并有蓝色复选标识。

再点击第二个数据源名称,发现 “州/省” 字段旁边有一个橙色复选标记。这是因为我们已经将“州/省”字段引入视图,所以 Tableau 将自动基于该字段混合,并以橙色复选标识。

在“地区”字段旁边,还有一个灰色的断链,由于地区也是两个数据源的公共字段,因此是另一个潜在的连接字段,只是现在未在当前视图中使用。如果还要基于该字段混合,可单击灰色连接将其激活,创建关系。

将“咖啡连锁”数据的度量“销售额”拖到列,可以看到:“数据窗格”的咖啡连锁数据源上有一个橙色复选标记,这样我们就能在视图中区分主字段和辅助字段。

我们还看到“办公之城”数据源的每一个州/省都有销售额信息,但“咖啡连锁”缺失多个州/省的销售额信息。这是因为 Tableau 会返回主数据源中所有成员的信息,辅助数据源只返回与主数据源有共有成员的信息(可以将其想象成左连接)。


交换主数据源和辅助数据源

需注意的是,主数据源和辅助数据源是根据工作表设定,不是在整个工作簿中全局保持不变。如在新工作表上,数据窗格中的数据源没有橙色和蓝色复选标记,表示我们建立的关系未得到沿用。

这时,便可基于不同的工作表,创建不同类型的数据混合。如果交换数据源,将“咖啡连锁”作为主数据源,“办公之城”作为辅助数据源。会怎么样呢?

先将“咖啡连锁”的度量“销售额”拖至列,然后拖出维度“州/省”到行。单击数据源名称,切换到“办公之城”数据源,并拖出度量“销售额”到列。

与前面的示例相比,该视图中的“州/省”行数只有原来的一半。这是因为“咖啡连锁”数据源的“州/省”字段值比“办公之城”的信息少。

此时,该视图只显示“咖啡连锁”中所有州/省的销售额数据,“办公之城”只显示相关州/省的销售额信息,这也就意味着:存在于办公之城而没有存在于咖啡连锁中的任何“州/省”,都不会呈现在此视图中。


数据混合与计算

以下视图,显示了办公之城和咖啡连锁在各州/省的销售额。可以看到,蓝色的主数据源,“办公之城”中有每个州/省的销售信息,而橙色的辅助数据源“咖啡连锁”中缺少几个州的销售信息,如果我们希望查看各州/省的合并销售额该怎么办?

为了合并两个数据源的销售额,我们需要创建计算字段。单击选中“办公之城”数据源,点击“数据”窗格右侧的下拉小三角,选择“创建计算字段”,Tableau 会弹出“创建计算字段”对话框。

需要注意的是:由于我们是在调用“办公之城”数据源创建计算字段,所以会显示“办公之城”数据源名称。

拖入“办公城市”数据源的“销售额”字段,键入加号,切换到“咖啡连锁”数据源,同样拖入“销售额”字段。可以发现,咖啡连锁的销售额与办公之城的销售额看起来有所差异:

咖啡连锁数据的“销售额”字段包含数据源名称,此格式可帮助用户区分计算字段来自哪个数据源,且咖啡连锁的“销售额”字段自动包含在SUM函数中。

可以看到,对话框底部提示计算字段错误,我们点击指示器看报错信息:在计算中使用的字段,必须是全部聚合字段或非聚合字段。

所以,我们要将办公之城的“销售额”字段包含在 SUM 函数中,将其重命名为“合并销售额”,单击确认。

将刚创建的计算字段 “合并销售额”拖放到列中。可以发现:对于咖啡连锁店销售额为空的州/省,合并销售额数据不显示。这是因为空值加非空值会得到空值,因此需要调整计算,将空值显示为0。

右键单击计算字段“合并销售额”,然后选择“编辑”。将咖啡连锁的“销售额”字段包含在 ZN 函数中。Tips:ZN 函数表示表达式为空,则返回 0,否则返回表达式本身。

现在,视图将准确显示办公之城和咖啡连锁店的合并销售额。


在计算中处理聚合的数据

在当前视图中,我们还想展示各产品的销售额。因“产品”字段仅属于辅助数据源“咖啡之城”,所以需要切换至“咖啡之城”数据源,再将维度“产品”拖至行。

可以看到:产品列有 Null 值和星号。“Null 值” 表示该州/省没有产品销售记录,“星号”表示该州/省销售多种产品。

所以,在数据混合时,我们可以尝试交换一个视图中的主数据源和辅助数据源。

在此示例中,我们将“咖啡连锁”用作主数据源,以蓝色复选标识。然后,将其维度“州/省”和“产品”先后拖至行,将度量“销售额”拖至列,并将辅助数据源“办公之城”的度量“销售额”字段也拖至列。

现在,视图呈现了各州/省的产品销售额,但由于“办公之城”数据源中没有产品字段,因此销售额被聚合到州/省级别,且各产品重复出现该值。

如果不能接受此方法来解决“星号”问题,可以考虑连接表而非融合表,并使用表计算或详细级别表达式来解决。



以上就是关于「如何进行数据融合」的全部内容。感谢观看本视频,更多 Tableau 学习资源,请关注微信公众号“优阅达大数据生态”。


更多相关信息,请访问专题页: Tableau使用入门教程