1. 概述

您在实际使用中可能会需要将两张表联合在一起形成一张新表使用的场景,这就是本文将要介绍的表关联。在数据模型中进行表关联时,我们支持对某个数据连接的多个表进行关联,也支持对多个数据连接中的表进行关联。

2. 跨库(数据连接)关联表

本产品支持将不同库(数据连接)中的表进行关联,比如一张数据表来自MySQL数据库,另一张数据表来自Excel文件,要将两张数据表关联成一张宽表后分析。此时需要将不同库(数据连接)的表抽取至MPP数据库中。
两张不同的表

我们还可以通过“抽取设置”对抽取任务进行更灵活的设置,比如设置抽取方式,建表方式,抽取引擎,执行计划,详见数据抽取。
表关联 - 图2

3. 表关联方式

关联类型 说明 示意图
内关联 使用内关联来合并表时,生成的表将包含与两个表均匹配的值。 内关联.png
左关联 使用左关联来合并表时,生成的表将包含左侧表中的所有值以及右侧表中的对应匹配项;当左侧表中的值在右侧表中没有对应匹配项时,您将在数据网格中看到 null 值。 left.png
右关联 使用右关联来合并表时,生成的表将包含右侧表中的所有值以及左侧表中的对应匹配项;当右侧表中的值在左侧表中没有对应匹配项时,您将在数据网格中看到 null 值。 right.png
外关联 使用完全外部关联来合并表时,生成的表将包含两个表中的所有值;当任一表中的值在另一个表中没有匹配项时,您将在数据网格中看到 null 值。 outside.png

注意事项

(1)null 值不会互相匹配

左右合并的两张表合并依据中如果有 null 值,null 之间不会互相匹配。若您需要对它们进行匹配,可以对其赋值,比如说可以都赋值为“0”后,再重新进行左右合并。

(2)产生笛卡尔积

若进行关联的两张表,它们的关联依据字段中有重复项,关联后就会产生笛卡尔积,导致数据量膨胀。(比如说以「id」列作为合并依据,左表 id 字段不唯一,或右表 id 字段不唯一,进行左右合并后就会产生笛卡尔积)。 如果您需要规避这种情况,建议开启关系模型

3. 表合并方式

表合并表示将两张数据表在行级上进行合并,即将两张表合并为一张表,合并的数据在行上进行扩展,字段数取两表字段的并集。具体操作步骤如下。

(1)将要合并的表直接拖入已有的表中,选择合并的图标,建立两张表的合并关系。
表合并1

(2)建立合并的关系,两张表的字段合并为一张表,例中将地区销售人员表合并到销售明细表中,因此合并表数据视图首先展示出销售明细表的数据,两表不相交的字段同样显示,值为null。

  • 字段视图如下:

表合并2-字段视图

  • 数据视图如下:
    截取序号1-6、501-506行的数据。

表合并2-数据视图

字段视图中,展示主表的字段。同样点击字段的下拉按钮,可以对字段进行设置,包括:重命名、转换数据类型、数据筛选、复制字段、隐藏以及新建计算字段。

数据视图中,可以展示两张表合并后的列和数据。主表中的字段和数据将全部展示,次表中相同的字段对应的数据将在行上进行扩展,不同的字段与数据也会展示,但是值为null。