1. 概述编辑
视频学习请参见 :数据关联
本功能适用人群:数据处理用户
1.1 应用场景
在某些业务场景下,有时需要从多张表中抽取多个字段合并成一张表来进行分析,此时可以创建多张表间的关联,并通过自助数据集 选字段 功能添加多张表的字段到一张表中。
1.2 功能简介
FineBI 可以创建和读取表间关联关系。获取关联关系的方法有两种:
在 添加数据库表 中将数据表添加到业务包时,系统会自动读取数据库中的表间关联。
在 FineBI 中手动建立表间关联关系。
1.3 直连相关
直连表与 Excel 关联
在直连版本中,有三种数据库「Microsoft SQL Server 2016、Oracle、Pivotal Greenplum Database」支持数据表与 Excel 关联,其余数据库不支持。
在建立关联前需要将 FINE_CONF_ENTITY 表中SystemOptimizationConfig.excelExtractDataBase 的字段值改为「true」,如何修改详细请参见:FINE_CONF_ENTITY可视化配置
在直连版本中,进行关联的两张表不能来自不同的数据连接。
否则合并后报错:[DIRECT-ETL] unsupported data source: databases on different hosts/ports
2. 使用范围编辑
2.1 支持创建关联的范围
数据处理用户有添加表间关联的功能,但不是所有表都能添加关联,以下几种表不可以:
「我的自助数据集」下创建的 Excel 和自助数据集不可以被添加关联。
抽取设置 为「不抽取数据」的自助数据集不可以被添加关联。
2.2 左右合并与关联关系的区别
关联关系 | 左右合并 | |
---|---|---|
功能 |
| 进行并集合并、交集合并、左合并、右合并将两张数据表形成一张新表使用 |
说明 | 根据关联方向和选字段方向进行合并表,详情参见:选字段 3.1 节内容 注:关联后自助数据集选字段为做左合并(left join)。 | 相当于 SQL 语句中的 full join、inner join、left join、right join 详情参见:左右合并 |
3. 添加表间关联编辑
3.1 添加单表关联
1)登录数据决策系统,进入数据准备>业务包,单击业务包配置页面已添加成功的表可以看到单表的关联视图选项。如下图所示:
2)在关联视图设置区域,可直接单击添加关联按钮,为该表进行关联设置。如下图所示:
3)进入关联设置界面,需要选择被关联的表及关联字段,添加关联方向。关联方向即表示哪个表作为主表。如下表所示:
关联方向 | ||
---|---|---|
1:1 | 1:N | N:1 |
主表 : 主表 两张表中的每条记录都相互对应 | 主表 : 子表 | 与 1:N 相反 |
需要根据实际情况谨慎选择。不能违反实际数据对应的关联关系,如实际主表不会因为手动设置为子表而变为子表。
关联字段:即作为标识的字段。
主表:包含「关联字段」的一张表,使用「关联字段」与其它表相关联,并且「关联字段」作为在主表中每条数据的唯一性标识。所以在主表中每条记录中包含「关联字段」不能重复。
子表:也包含「关联字段」,但是其「关联字段」不是唯一标识。
所以关联方向 1:N 指的是:主表中的「关联字段」唯一,而子表的「关联字段」不唯一,它们的关系即为 1:N 。
4)此处为「医药_库存周转事实表」选择客户编码字段关联,选择「客户地区维度表」的客户编码字段添加关联,选择关联方向为N:1,即「医药_客户地区维度」作为主表(没有重复的记录),如下图所示:
表字段注意事项
主表的关联字段不能有重复值,表示同一张表的字段 A 不能出现多张主表字段。也即上面库存事实表的客户编码字段只能配置一个主表字段,不能再为该字段配置 N:1 关系的其他字段,否则后面配置的将覆盖之前配置的关联。
关联字段中不能含有以下特殊字符:. [ ] = ( )
需要注意关联字段中的字段值大小写是否能够匹配, FineBI 区分字段值的大小写。
3.2 关联查看
1)添加完成后点击确定保存,即可在该数据表的关联关系区域看到已经添加成功的关联,如下图所示:
单击已创建的关联上方的添加关联,按照上面同样的方式添加关联到其他表/字段即可。
2)配置字段关联后,需要点击更新信息>单表更新进行该表的更新操作,抽取数据保存到本地才能使用。表更新详情请参见: 数据更新 ,如下图所示:
注1:若存在多人配置相同字段关联的情况,后保存的将覆盖之前保存的关联配置。
注2:主表的关联字段本身的字段值中不能有重复的值。比如上面的「客户地区表」为主表,关联字段为「客户编码」,则「客户编码」的字段值中不能有重复值;若「客户编码」字段值包含两个相同编码,则该字段不能作为主表的关联字段。
3.3 添加联合关联
3.3.1 应用场景
用户系统中通过一个主键无法确定一条记录。
比如订单表里有很多字段,一般情况只要有个订单号 bill_no 做主键,但是现在可能会有补充订单,使用相同的订单号,这时不能单独使用订单号,会有重复。可以再使用个订单序列号 bill_seq 来作为区别,把 bill_no 和 bill_seq 设成联合主键。
3.3.2 添加关联
1)在关联视图下选择对应的关联,点击编辑,如下图所示
在关联设置界面单击添加联合关联字段,并选择需要的字段添加关联,如下图所示:
3.4 创建自助数据集
在创建自助数据集时就可对已经创建关联的数据集进行跨表选字段,详情参见:选字段
1)点击添加自助数据集,进入自助数据集编辑界面,选择「医药_库存周转事实表」,并选择其中所有字段,如下图所示:
2)选择「客户地区维度表」下的客户名称和省区字段,成功将两张表的所需字段合并在一张表上,点击保存,如下图所示:
4. 修改表间关联编辑
1)对于已经添加好的关联关系,点击编辑按钮进行修改,如下图所示:
2)可以重新进行关联字段和关联方向的选择,如下图所示:
5. 删除表间关联编辑
对于之前创建的不需要的表间关联,可以进行表间关联关系的删除,点击删除按钮进行删除,如下图所示:
6. 关联关系查看编辑
本章第 2 节已经手动建立好一组表间关联关系,除了在单表的关联视图区域查看关联外,还可以在数据准备节点下的 关联视图 区域查看,如下图所示: