【数据模型系列_02】数据合并 之 交并差

楼主
我是社区第525317位番薯,欢迎点我头像关注我哦~

上一篇提及了在BI里面,常用维度建模。本篇结合FineBI重点聊聊集合运算。

 

维度建模和集合运算是两个不同领域的概念,但在数据分析中常常同时出现,有一定的关联性。

他们的关系是:

维度建模时,数据操作和查询过程中常常会应用集合运算来处理和整合数据集。

最主要的区别:

维度建模主要关注数据模型的构建和维护,提供了对数据进行切片和分析的维度标准;而集合运算则强调对数据集合进行运算和操作,用于数据的筛选、合并、分割等。

 

举个栗子:

假设我们有一个包含销售订单数据的数据包,包括了维度表(例如产品维度、会员维度、门店维度)和事实表(例如销售数量、销售额等)。

 

在这个场景中,维度建模用于构建数据模型,以便于对销售数据进行分析和报告。

 

首先,维度建模通过设计和关联维度表和事实表,将销售数据进行整合。例如,通过与产品维度表的关联,可以获取每个产品的销售数量和销售额。通过与会员维度表的关联,可以对不同的会员进行销售贡献分析。通过与地区维度表的关联,可以获取不同地区的销售数据。

 

然后,在使用维度建模进行数据分析和报告时,常常需要进行数据筛选和操作。这时,集合运算就可以发挥作用。例如,会员分析中,通过运用集合运算中的交集操作,可以筛选出同时在两家门店均有交易的会员有哪些;通过并集操作,可以合并多个不同门店交易的会员进行总体分析;通过差集操作,可以找出未在指定门店交易的会员有哪些。

数据处理整合,概括来说只有两类,即上下合并 和 左右合并。前者多用于多组数据的上下追加合并,后者重点针对不同类型的数据,通过关联依据,将其连接到一起,可以理解为横向合并,这种连接数据的方式可以延伸出交并差运算。

  • 图解上下合并:

 

  • FineBI的上下追加(BI针对导入数据,有自动合并功能,导入后系统会自动检测,符合条件的话不需要手工做上下追加):

 

  • 图解左右合并 以及 交并差集合运算:

  • FineBI的左右合并:

 

从FineBI的界面可以看出,合并方式展示了常见的4种:

左合并、右合并、交集合并、并集合并

这四种基本合并方式,可以满足大部分的连接运算需求,少数的复杂业务需求需要使用差集运算(交集或并集后,再做减法)

下面举例展示:

表A:

 

打开FineBI6.0,在tab【我的分析】中新建分析主题。

数据导入:弹出【选择数据】框,将表A和表B数据导入

交集

需求1:求在SZ01和DS07两家门店均有交易的会员是哪些?

思路:SZ01和DS07交易会员的交集

在FineBI中,我们通过自助数据集来更直观的呈现:

1.1 数据集①:表A不做处理

1.2 数据集②:用表B合并表A,合并依据为“会员id”,合并方式选择“交集合并”

并集

需求2:求在SZ01和DS07两家门店有过交易的会员是哪些?

思路:SZ01和DS07交易会员的并集

2.1 数据集①:表A不做处理

2.2 数据集②:用表B合并表A,合并依据为“会员id”,合并方式选择“并集合并”

差集

需求3:求仅在SZ01门店有过交易的会员是哪些?

思路:求差集,SZ01交易会员 剔除 DS07交易会员

3.1 数据集①:表A不做处理

3.2 数据集②:用表B合并表A,合并依据为“会员id”,合并方式选择“右合并”

3.3 过滤表B中“下单门店”为空的行

 

需求4:求仅在SZ01门店以及仅在DS07有过交易的会员是哪些?

思路:求差集,SZ01和DS07交易会员的并集 剔除 SZ01和DS07交易会员的交集

4.1 数据集①:表A不做处理

4.2 数据集②:用表B合并表A,合并依据为“会员id”,合并方式选择“并集合并”

4.3 过滤表B中“下单门店”为空的行 或者 表A中“下单门店1”为空的行

 

小结

左右合并与集合运算的交并差相互关联。

 

需要注意的是,BI在数据集里面的合并,都是行级别的合并,所以在合并的时候,「合并依据」字段需要特别注意,1:1或者1:N的合并不会导致数据膨胀,但是N:N的合并(即「合并依据」字段存在重复值)会进行笛卡尔运算,导致数据膨胀。BI会自动检测「合并依据」是否重复,并给出提示。若确实需要笛卡尔来实现某种业务场景的计算,请注意膨胀系数不要超过5,否则为了不影响系统的稳定性,BI会主动打断更新。

 

另外需要注意的一点就是「合并依据」出现NULL时,NULL之间不互相匹配。

其实「合并依据」出现NULL是非常不严谨的,我们要尽量避免。若实在无法避免,且需要对它们进行匹配,需要对其进行特殊处理,比如:单独赋值。

 

好了,今天就酱紫,回见~

分享扩散:
参与人数 +1 F币 +30 理由
苏瑞 + 30 【2024原创内容激励奖励】给你32个赞!

查看全部评分

沙发
发表于 2024-6-3 16:32:56
您好,本次内容介绍了数据合并的几种方式,从具体的需求入手,基于实际案例开展相关运算,有依据有条理。并集的整体图文格式有些问题,可以再仔细调整一下~
板凳
发表于 2024-6-5 10:34:29
这个交并差还蛮好用的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表