从零开始Tableau | 2.数据整合

 

完成与数据源的连接后,需要对来自不同数据源、多个数据表的数据进行融合、联接等操作,同时还要选择适合的数据整合方式,本节内容包括:

  • 数据联接
  • 数据合并
  • 数据加载

数据联接

联接字段

当需要从多个数据表中获取数据,则要用到数据联接操作。为了操作直观、简单,继续使用自制的数据集demo,包括“书籍”和“作者”两张数据表,其中,“书籍”数据表包含书名、作者、作者ID、出版社4个字段,“作者” 数据表包含作者、作者ID、国籍3个字段”。

图:数据集demo数据表

                                                                                       图:数据集demo数据表

如果打算分析书名、作者以及作者国籍的有关情况,就要将两张表连接在一起,这两张表有两个相同字段,分别是“作者”和“作者ID”,一般在进行数据连接时,如果既有名称又有ID,通常会选择与ID有关的字段作为连接字段,因此,上面两张表就通过“作者ID”进行联接。

联接方式

目前,tableau中的数据联接方式分为四种,分别是内联接、左联接、右联接和完全外部联接。通常情况,tableau会自动判断两张表的同类字段并进行关联,如果关联不正确,可以通过手动方式进行关联。

图:tableau中的四种联接方式

                                                                                       图:tableau中的四种联接方式

  • 内联接

使用内联接合并数据表时,生成的新表仅保留两张数据表中具有相同关键字段的行。

对上面数据集demo的两张数据表使用内连接,生成的新表将两张数据表中,具有相同“作者ID”的行合并在一起,其余行则被剔除在外(作者ID从A015-A022被剔除在外,红色虚线框部分)。

图:内连接示例

                                                                                       图:内连接示例

  • 左联接

使用左联接时,生成的新表包含左侧表中所有值以及右侧表中相对应的匹配值。

使用左联接后,生成的新表包含了“书籍”数据表中的所有行,并与“作者”数据表中,具有相同作者ID的行合并在了一起。需要注意的是,如果右侧表(“作者”数据表)中,没有与左侧表(“书籍”数据表)相匹配的项,合并后的新表中,对应数据网格则会显示null。

图:左联接示例

                                                                                            图:左联接示例

  • 右联接

使用右联接时,生成的新表包含右侧表中所有值以及左侧表中相对应的匹配值。

与左联接正好相反,使用右联接后,生成的新表包含了“作者”数据表中的所有行,并与“书籍”数据表中,具有相同作者ID的行合并在了一起。需要注意的是,如果左侧表(“书籍”数据表)中,没有与右侧表(“作者”数据表)相匹配的项,合并后的新表中,对应数据网格则会显示null。

图:右联接示例

                                                                                         图:右联接示例

  • 完全外部联接

使用完全外部连接时,生成的新表将包含两个表中的所有值。采取这种方式时,如果一张表的值在另一张表中没有匹配项,则在对应数据网格中显示为null。

使用完全外部联接后,生成的新表包含了“作者”数据表中的所有行,以及“书籍”数据表中的所有行,同时将两个数据表中,作者ID相同的行合并在了一起。在“书籍”或“作者”数据表的任一行中,如果以作者ID为关键字段匹配不到任何项,则会在对应数据网格中显示为null。

图:完全外部联接示例

                                                                                     图:完全外部联接示例

数据合并

当需要将有多张数据结构一致的表格整合汇总在一起时,则可以使用数据合并。对于数据联接和数据合并的简单理解,数据联接是横向扩展数据表的字段,纵向的数据行数不会变得更多,而数据合并正好相反,它是纵向增加数据行数,横向的数据表字段不会变得更多。

要进行数据合并操作,每个表必须具有相同的字段数,并且相关字段必须具有匹配的字段名称和数据类型

手动数据合并

为简单并且直观体验数据合并操作,先建立“书籍1”和“书籍2”两张数据表,这两张表的数据结构完全一致,均包括书名、作者、作者ID、出版社4个字段,同时数据类型也一致。

图:手动数据合并数据表demo

                                                                              图:手动数据合并数据表demo

手动数据合并操作步骤:

  1. 在tableau工作表区“新建并集”,并将需要合并的数据表——“书籍1”和“书籍2”拖入弹出的并集(手动)对话框;
  2. tableau生成合并后的新数据表,该表包含“书籍1”和“书籍2”的所有数据,并且各字段一一对应。需要注意的是,生成的新表中,新增了sheet和table name两个字段,用于说明并集中的值的来源信息。

图:手动数据合并操作步骤

                                                                              图:手动数据合并操作步骤

自动数据合并

如果需要合并的数据并不是来自同一数据源,比如来自多个excel表,就可以使用数据合并中的“通配符搜索”完成合并工作。新建三张excel数据表,分别是“合并测试3demo”、“合并测试4demo”、“合并测试5demo”,3张数据表均包含书名、作者、作者ID、出版社4个字段。

图:自动数据合并数据表demo

                                                                                   图:自动数据合并数据表demo

自动数据合并操作步骤:

      1.将准备合并的Excel数据表放置到同一个文件夹,在工作表区执行“新建并集”操作。

  • 在弹出的“并集”对话框中选择“通配符(自动)”;

  • 在“工作簿”位置,将匹配内容改写为“合并数据*”,其中“合并数据”是共有的名称,星号是通配符,这里用于匹配3、4、5三个数字。

      2.tableau生成合并后的新数据表,该表包含“合并测试3demo”、“合并测试4demo”、“合并测试5demo”的所有数据。生成的新表新增path、sheet两个字段,用于说明并集中的值的来源路径及表名称。

图:自动数据合并操作步骤

                                                                            图:自动数据合并操作步骤

数据加载

tableau中的数据载入有两种方式,分别是实时连接和数据提取。与数据源完成连接后,将某工作表拖拽至画布区,就可以在画布区看到“连接”方式的选择,分别是“实时”和“数据提取”。

图:数据连接方式

                                                                                         图:数据连接方式

“实时连接”:直接从数据源实时查询获取数据信息,tableau不对源数据进行存储。

“数据提取”:将数据源的数据保存到本地计算机,大幅缩短tableau查询载入源数据的时间。

选择数据提取后,可以在弹出窗口继续设定数据提取的有关细节,如通过筛选器确定要提取哪一部分数据。这里将“出版社”字段添加到了筛选器,可以在弹出的对话框中确定需要筛选的具体出版社,以进一步缩小数据提取范围;还可以确定提取的数据是所有行,还是增量部分,又或是前多少行数据;也可以通过通配符、条件等方式选择需要提取的数据。

图:数据提取示例

                                                                                     图:数据提取示例

“实时”和“数据提取”的选择

在实际运用中,可结合实际选择最适合的数据加载方式确保高效完成数据分析工作。

何时选择“数据提取”:

  • 不便于实时连接数据源,如数据是通过本地服务器获取,但又需要在别的电脑进行分析时,可以通过”数据提取“将所需分析的数据保存到本地电脑。
  • 分析的数据量较大,需要提高数据载入效率,降低源数据库的访问压力时,可以通过数据提取将数据转移到本地计算机。

何时选择“实时连接”:

  • 源数据的保密性要求较高,处于安全考虑不希望保存到本地时,可以采取实时连接的方式。
  • 要实时更新源数据信息,并且对实时性的要求较高,可以选择实时连接的方式。

猜你喜欢

转载自blog.csdn.net/springyang2015/article/details/82016410