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 字段不唯一,进行左右合并后就会产生笛卡尔积)。 如果您需要规避这种情况,建议开启关系模型