概述
什么是关联关系
“关联关系”是在数据源中的逻辑表之间创建的灵活连接线:描述了两个表如何基于公共字段互相关联,但是不会将表合并在一起。在分析来自某个表的指标时,会通过建立好的“关联关系”,来拓展分析的维度。创建了两个表之间的关联关系后,两张表仍然保持独立,不会形成逻辑表或者物理表,不会执行任何数据关联计算。
- 您需要选择两个表之间的匹配字段(通常是一方为一张表的主键,表示该字段的值满足唯一性跟非空的条件;另一方的匹配字段为引用方)
- 您不需要在创建时选择时“左连接”、“右连接”等连接类型,因为在指标分析中,会根据您指标或者维度所在的表自动确定类型
应用场景
建立多张表之间的关联后,用户可以在指标分析中,引入来自多张表的维度跟指标一起进行分析。
例如下图:我们在分析事件表的数据时,可以通过3个关系,分别引入商品(Product)、卖家(Seller)、用户(User)表中的维度:
- 可以按照“卖家的国家”来分析订单事件。
- 可以根据商品的价格来分析订单事件。
- 也可以根据用户的国家来分析事件。
功能简介
用户可以使用两类表来建立关联关系
- 神策预置顶的EUI模型表
- 用户导入的数据库表
注:用户导入的数据表,需要在开启数仓应用,纳入表应用管理后被关联关系使用
关联关系的要求
- 在建立“关联关系”时,定义关系的字段必须具有相同的数据类型(目前支持:文本、数字类型)
- 支持两个表单个字段之间的关联,联合多个字段后再建立关联关系当前暂不支持
- EUI中,事件(Events)跟用户(Users)之间的关系,无需用户操作,EUI内置处理
- 定义关系的字段,必须在一方为“主键”,可以在“表应用管理“中定义主键
如何添加表间关联
本示例将把「事件」跟「卖家表」之间建立关联关系。
添加关联
1)进入指标平台-关系管理页面,点击创建关系
2)选择下拉「卖家表」为主键表
3)在引用表下拉中选择「事件表」,然后选择引用字段「SellerID」,该引用字段表示事件表中的SellerID值来自「卖家表」的SellerID字段,根据「SellerID」能在「卖家表」表中找到一个不重复的记录。(关联字段需要根据实际情况谨慎选择,不能违反实际数据对应关系)
关联关系 | 举例 |
1:1(一对一) | 可理解为公民与身份证号的关系,一个人只有一个身份证号 |
1:N(一对多) | 可理解为省份与城市的关系,一个省份有 N 个城市 |
N:1(多对一) | 多个城市属于一个省份 |
注:1 端表的「关联字段」中是不能有重复值的,所以 1 端的“1”也表示关联字段中每个字段值都是唯一的。
关联字段的要求
- 1端表示关联字段为该表的主键,满足唯一、不能为空值的约束
4)选择好关联字段后,关闭设置抽屉。给关系命名,填写描述,然后右上角提交,完成创建
跨表使用指标维度
之所以要建立关联,就是希望能将有关系的两张表的维度、指标联合一起分析。
所以建立好关联之后,就可以在指标分析中跨表使用指标维度:“卖家国家”维度来自「卖家表」,有发生过订单事件的「卖家数量」指标来自「事件表」。这里可以按照卖家的注册国家,来分析来自事件表的「卖家数量」指标。
管理关联关系
关联关系创建后为“上线状态”,管理员可以对关联关系进行下线、删除、上线、名称编辑的操作。
查找
用户可以按照关系名称、关系用到的表名、字段名来搜索关联关系。
修改关联关系的名称跟描述
对于已经添加好的关联关系,点击「编辑」按钮修改关联关系的名称跟描述信息。
下线关联关系
关联关系依赖的底层物理表被删除、关联字段被删除、表名、字段名发生变化后,都会让关联关系变为“下线的状态”。
此外,管理员也可以手动将不再需要的关联关系标记为“下线”状态,这意味着在自定义业务分析中无法使用该关联关系。
下线后的关联关系,支持被删除,删除后将无法恢复。
权限
管理关联关系的权限,默认管理员会开启,其他角色只拥有查看权限。
关联关系常见问题FAQ
1)两张表之间可以创建一个以上的关联关系吗?
可以,比如电商订单中会有两个不同的用户ID:「下单用户ID」、「推广用户ID」;这两个都可以通过用户表的主键,建立关联关系。
2)是否支持联合主键?
目前暂不支持。
3)哪些类型的字段不能用于关联关系的建立?
文本、数字之外的字段,不能建立关联关系。
4)是否支持创建多对多的关联关系?
多对多的关联关系会导致维度的膨胀跟业务含义的混乱,暂时不支持
5)我如何修改关联关系?
可以创建一个新的关联关系,这样不会影响到已经使用的分析。对于老的关系确认没有被使用后,再进行删除。