连接节点
一、简介
1.1 功能简介
连接节点用于将两张数据表横向连接整合为一张新表,以便对两份数据做统一处理和分析。该功能适用于将不同的数据来源通过某些共同的字段对齐并匹配,将他们拼接在一起。
1.2 使用场景
- 销售流水和商品表:通过商品名称或商品编码字段将商品表和销售流水表拼接在一起,便于分析每一件商品的销售情况
- 英语成绩和数学成绩:通过学生姓名将学生的英语成绩表和数学成绩表拼接在一起,便于综合分析学生的考试成绩
- 入库数据和采购数据:通过商品名称或商品编码字段将入库数据和采购数据拼接在一起,分析入库与采购商品量是否对应
- .....
1.3 效果展示
如下图所示,将学生的数学成绩和英语成绩左右匹配在一起,方便数据的处理与显示

一、设置步骤
2.1 接入连接节点
进入数据集编辑界面,拖动上方「连接节点」至下方画布区域,将需要连接的两个表通过连线的方式与连接节点进行连接,即可进行连接节点的编辑。
数据来源节点、连接节点、筛选节点均可以接入连接节点

2.2 编辑连接节点
2.2.2 选择连接方式
可以选择左连接、右连接或内连接三种连接方式,不同的连接方式对应不同的显示方式
⚠️注意接入连接节点的两个节点会划分为左表与右表,两个节点中位置在上方的节点划分为左表,位置在下方的节点划分为右表当连接后表的行数大于左表与右表行数之和的二倍时,不会生成连接表。若出现该情况,通过调整数据集配置或修改原始数据的方式,使生成连接表表的行数小于等于左表与右表行数之和的二倍即可生成报表
左连接
左连接的连接逻辑类似于SQL语句中的left join,即以左表为主,保留左表中所有的数据不动,用右表的每一行数据依次地去与左表中的每一条数据匹配,只要匹配字段的值相同,就拼接为一条新的数据。
左表:

右表:

左连接:

- 有多条匹配数据时
注意,如果右表中有多行数据可以与左表中某一条数据匹配,或者右表中的一行数据可以在左表中找到多个可匹配数据,那么就会生成多行匹配数据。例如,当我们把订单号作为匹配字段,左表订单表中有两条订单号为1001的数据,右表发货表中有3条订单号为1001的数据,最终的连接节点就会生成6条订单号为1001的数据。
左表:

右表:

左连接后:

这种计算逻辑确保每条数据明细都能保留下来,您可以统计每一条订单的总发货量。反之,如果您希望每个订单连接后只生成一条数据,可以选择:
-
选择唯一标识类字段作为匹配字段(在左表和右表中都只出现一次的字段)
-
后续使用筛选或分组节点对连接后的数据做进一步整理
-
找不到匹配数据时
如果有一条左表的数据,右表中任何数据都无法与之匹配,那么该条左表数据仍然保留,只是对应的右表字段为空。例如下图中左表中的订单号为1004的数据,右表中没有数据可以与之匹配,左连接后该数据仍然保留,只是发货量字段为空,您可以通过这种方式查找哪些订单还未发货。
左表:

右表:

左连接后:

同时,因为左连接是以左表为主的,如果右表中的某一条数据在左表中没有找到任何对应的匹配数据,那么这条数据就不会被展示在连接后的表中;
右连接
右连接的连接逻辑类似于SQL语句中的 right join,即以右表为主,保留右表中所有的数据不动,用左表的每一行数据依次地去与右表中的每一条数据匹配,只要匹配字段的值相同,就拼接为一条新的数据。
右表:

左表:

右连接:

- 有多条匹配数据时
注意,如果左表中有多行数据可以与右表中某一条数据匹配,或者左表中的一行数据可以在右表中找到多个可匹配数据,那么就会生成多行匹配数据。例如,当我们把订单号作为匹配字段,左表订单表中有两条订单号为1001的数据,右表发货表中有3条订单号为1001的数据,最终的连接节点就会生成6条订单号为1001的数据。
左表:

右表:

右连接后:

- 找不到匹配数据时
如果有一条右表的数据,左表中任何数据都无法与之匹配,那么该条右表数据仍然保留,只是对应的左表字段为空。例如下图中右表中订单号为1005的数据,左表中没有数据可以与之匹配,右连接后该数据仍然保留,但是左表中的客户名字段为空,您可以通过这种方式查找哪些发货数据没有对应收货客户。
左表:

右表:

右连接后:

同时,因为左连接是以左表为主的,如果右表中的某一条数据在左表中没有找到任何对应的匹配数据,那么这条数据就不会被展示在连接后的表中,如上图中左表中订单号为1004的数据,在右表中没有对应匹配数据,则没有出现在连接后的表中;
内连接
内连接的计算逻辑类似于SQL语句中的inner join,即仅保留左表和右表中成功匹配的数据,不保留任何一方单独存在、未匹配成功的数据。如下图左表中订单号为1004的数据和右表中订单号为1005的数据没有找到对应的匹配数据,在内连接后这两条数据将不会被展示。
左表:

右表:

内连接后:

2.2.3 选择匹配字段
在对两个表进行横向连接的时候,需要通过设置“匹配字段”来告诉系统,哪个字段用于判断两表中的数据是否可以拼接在一起。
为保证表连接的准确性,请勿选择表格子字段作为匹配字段
- 选择匹配字段
在左右两表中各选择一个字段,当这两个字段的值相同时,两条数据就会被合并为一条。如图所示,将订单号字段设置为连接字段,当左表中的数据与右表中的数据订单号相同时,就会横向连接为一条数据,这一条新合成的数据包含左表和右表中的所有字段列。

- 添加多个匹配条件
如果需要两个或以上的字段同时相等,才算匹配成功,可以点击「添加」按钮,设置多个匹配条件。系统会同时判断这些字段,只有全部相等时才合并。

- 合并连接字段
勾选「合并连接字段」后,匹配字段在最终的合并表格中会只保留一列显示,避免重复展示左右表中相同的列名。
当连接方式是左连接或内连接时,右表中被选为匹配字段的字段不会显示在合并后的表中,左表正常显示;当连接方式是右连接时,左表中被选为匹配字段的字段不会显示在合并后的表中,右表正常显示
未合并连接字段效果:

合并连接字段效果:

2.2.4 重命名节点
选择一个连接节点,点击铅笔图标,输入新名称,点击确定,即可完成重命名操作

2.2.5 删除节点
选择一个节点,点击垃圾桶图标,选择确定,即可完成删除操作。

2.2.6 数据预览
通过预览可以查看连接后的表格。

2.2.7发布
如果连接节点是数据加工环节的最后的一个节点,则该数据集无法直接发布,必须将其与输出节点相连才能发布数据集。