Tableau 学习 (3)合适的数据融合方式
Tableau 数据融合的方法3种,且每一种都有自己身适应的一些条件。
一 连接
连接是用于合并通用字段(通用列)关联表的一种方式,使用连接合并数据后通常会产生一个通过添加数据列横向扩展的虚拟表。
这里说一下表连接的类型以及连接后的结果
内部:使用内连接来合并数据时,生成表将包含两个表均匹配的值 (数据库的等值连接、inner join)
左侧:生成的表将包含左侧表中所有值以及右侧表中对应匹配项。当左侧表中在右侧表中没有对应的匹配项时,将在数据网格中显示null值。(数据库的left join)
右侧:生成的表将包含右侧表中的所有值以及左侧表中对应匹配项。当右侧表中的值在左侧表中没有与之对应的匹配项时默认显示null值。(数据库的right join)
完全外部:生成的表将包含两个表中的所有值当任一表没有找到与之匹配项时,将在数据网格中显示null值
当然就算是连接合并的表的情况也会分为同一数据库的表,和不同一数据库的表的连接区别
连接统一数据库的表
这里指的同一数据库包括数据库、excel或文本是同一个但其包含多个数据表。此时只需要一个连接,具体的步骤如下:
步骤1:在开始界面的左侧连接菜单里找到需要连接的数据库(excel 文本),连接数据库(打开excel)此时可以在tableau看到刚刚打开的数据库以及库中的表
图 3-1
步骤2:将所需要关联的表拖入右侧的容器中,图3-2所示
图3-2
步骤3:选择表的关联关系,确保能够反映我们要展示的数据
图3-3
步骤4:关联关系以后查看数据,确保连接生成想要的结果
连接不同数据库的表
步骤1:在开始界面里找到目标数据库,如图3-1
步骤2:同样是将这个数据源的表拖入右侧容器里 如图3-2
步骤3:在左侧连接框中选择添加来新增目的数据库的连接,如图3-4
图3-5
步骤4:则是如选择关联的表依旧拖入右侧容器中选择数据的关联关系,如图3-3
步骤5:关于使用多连接数据源的要注意一下问题:
- 需要确保数据提取文件是第一个连接。
- 如果对数据做透视,必须在同一连接的文本列或者同一excel列,不能再透视中包含不同数据库的列。
- 对于每个连接,Tableau 都会向数据库发送独立的查询连接,并采用数据提取的文件格式将结果存储在一个临时的表中。当执行跨数据库连接时,Tableau会将这些临时表连接在一起,这些临时表是数据库连接所必需的。
连接常见的问题及处理方法
(1)无数据或缺失数据
此时可能需要更改连接类型或连接条件中使用的连接字段。如果是连接中字段不匹配,通常可能是格式不一致,亦或者本身字段的值不一致如大小写、空格等等,可以做新增计算列做一定换之后予以关联。
(2)重复数据
可以改用数据混合的方式合并数据,或使用自定义的sql将表改为适合分析的结构
二 混合
数据混合也叫数据融合,指在单个工作表上融合来自各个数据源的数据。其工作方式:使用辅助数据源中的数据补充主数据源中的数据,数据在公用维度上进行连接,不会创建行级别的连接,并且不向数据中添加新的维度或行。
混合数据适用的场景
- 连接数据导致数据重复
- 连接性能很慢
- 数据需要在tableau做一些清洗
- 想合的数据来自跨数据库连接不支持的不同数据库
数据混合必备的条件及步骤
数据混合至少需要一个主数据源和至少一个辅助数据源。指定主数据源后任何后续数据源会被视为辅助数据源,并且视图中只会显示主数据局源中具有对应的匹配项的辅助数据源列,指定主、副数据源之后必须要有一个公用维度(连接字段)。混合数据的具体步骤如下:
步骤1:连接到数据并设置数据源,第一个数据源用图3-1的方式,后续的数据源则是通过“新建数据源”或CTL+D快捷键设置,如图3-6
图3-6
步骤2:将左侧边条的数据创各种设置成主数据源,以及编辑主副数据源之间的关联字段 如图3-7
混合常见的问题及处理方法
(1)辅助数据源不存在与主数据源的关系,或者没有启用主、副数据源之间的关系字段
当有时候将辅助数据源的数据拖入视图时弹出“无法从【辅助数据源名称】使用字段”,此时是可能是没有增加主、副数据源的关系或者没有启用他们的关联字段,如图3-8操作
图 3-8
三 并集
并集就是一种将值也就是行附加到表的方法通常此方法合并具有相同的列的表,合并后的数据会产生一个虚拟表于此表具有相同的列,但会通过添加数据进行纵向扩展。(注意前面的数据连接,数据融合皆为横向扩展)
并用的应用场景
在很多企业中实际采集录入业务数据的过程,会将数据结构相同但时间段不同的表按时间分开存储。在实际分析师往往需要综合所有时间进行分析,此时就可以通过并集的方式将数据合并在一起展开分析,并集如图3-9操作
图3-9
并集在使用中的注意问题
(1)无法使用并集合并数据库存储过程
(2)并集合并相同连接的表,不能合并不同数据库中的表
(3)处理数据库的并集时,可以转化为sql的union 操作