关联

<< Click to Display Table of Contents >>

当前位置:  数据准备 > 数据集 > 自服务数据集 

关联

复制链接

关联包括“联接”和“联合”两种操作节点,主要用于将多个数据集数据整合到一起的场景。

注意:

当跨库关联时,根据用户配置属性flow.query.support.multisource值会有不同的提示:

参数为0时,无提示;

参数为1时,弹出提示:

clip0161

参数为2时,弹出提示并且无法创建关联。

1.联接

1.1 概述

拖拽数据库中的表或视图或者直接拖拽数据集到自服务数据集。拖拽联接节点到画布时,如果联接节点和输入节点相距75px之内,联接节点会自动和输入节点连线。联接节点第一次和输入节点自动连线时,会自动弹出编辑节点菜单。如果数据库表之间定义了外联接信息,联接节点会基于这些外联接信息将缺省的联接做好,而无需用户定义,反之,则需要用户自己定义节点之间的联接关系。

1.2 应用场景

用户实际使用中可能会有需要将两张表联合在一起形成一张新表使用的情况。

如图示两个表,已经创建了数据集,想要同时展示和处理两个数据集中的茶叶种类,质量和价格:

clip0185clip0186

这种情况就可以以“种类”为联接列,使用操作节点“联接”来实现对两个数据集的合并。

clip0149  

双击联接节点或选中联接节点右键编辑节点,打开联接节点对话框进行编辑,通过中间的下拉菜单选择“操作类型”,来定义两个节点之间的联接关系。两个节点之间的关系图如下。

queryshot9

联接中的功能介绍如下:

操作

说明

输入节点列表

红线标注的下拉列表里罗列画布中的所有输入节点。左边的为左表,右边的为右表。

联接类型

黄线标注的下拉列表可以选择联接类型,有内部联接,左侧联接,右侧联接,外部联接 。

示例:

以开头展示的茶叶数据集联接为例。

内部联接(Inner Join):将左右两张表符合联接条件的记录组合在一起,只展示两张表都有的茶叶:

clip0187

左侧联接 (Left Join):左表的记录全部显示,右表只会显示符合联接条件的记录,右表中记录条件不足的地方补空,只展示左表中的茶叶:

clip0189

右侧联接 (Right Join): 右表的记录全部显示,左表只会显示符合联接条件的记录,左表中记录不足的地方补空,只展示右表中的茶叶:

clip0188

外部联接(Outer Join):左右表记录全部显示,不符合联接条件的记录对应的位置补空,将两张表的茶叶全部展示:

clip0190

添加

选择好左表、右表和联接类型后,点击添加定义的联接列添加到列表中。

上移/下移

列表中选中联接列,可以点击通过上移/下移来调整联接列的定义顺序,同时也会对执行顺序产生影响。执行顺序会在右侧区域示意出来。

添加/选择联接列

在表名下方点击添加联接列可以选择需要作为联接列的列,也可以点击已经添加的联接列更改已选择的列。

2.联合

2.1 概述

拖拽操作中的联合到自服务画布,通过连线的方式,将多张表的数据(包括重复数据行)拼接在一起。联合的两张表,表的列数必须相同,对应列的数据类型必须匹配,如果不满足上述两个条件,这种联合便是一种无效联合。

clip0151

2.2 应用场景

当用户有两张列相同,但是实际记录对象不同的表时,可以使用“联合”操作节点把两张表的行合并到同一张表。

如存在两张表对应的数据集如图:

Query_SelfJoin0

Query_SelfJoin1

可以使用“联合”操作节点将两个数据集合并到一个,同时展示这六种水果的种类、价格和库存:

Query_SelfJoin2