1. 概述
1.1 应用场景
在左右合并中,我们手动选择 左合并、右合并、并集合并、交集合并 确认保留左右哪张表数据完整。
在 SQL 语句中,我们通过选择 left join、right join、outer join、inner join 确认保留左右哪张表数据完整。
但在使用主题模型的时候,似乎并不需要我们手动去设置,在避免了我们选择困难的同时,又不禁怀疑,数据是否还完整呢?我们想要保留的数据还在吗?
别担心,主题模型有更智能的处理方式,无需我们手动确认左合并右合并,本文将给大家介绍。
1.2 功能简介
主题模型处理数据完整性有以下两个原则:
若组件中使用到了指标字段,那么指标所在的那张表完整保留
若组件中只使用了维度字段,那么维度所在的表取交集
2. 左右合并如何保证数据完整
一起回忆一下左右合并是如何处理数据完整性的。
两张表都有对方没有的数据,我们选择左合并、右合并、交集合并、并集合并保留的数据结果都不一样。
3. 主题模型如何保证数据完整
左右合并的时候,我们获得的是一张固定的数据表。
在主题模型中,我们希望数据的保留也是动态的。可以根据我们在组件中实际拖入的字段去确定交集合并还是左合并右合并。
下载示例数据表:数据完整性.xlsx
新建主题,上传示例数据,并建立「销售额表」与「大区经理表」的模型关系。
原则一:被拖入的指标数据一定完整
若一个指标字段被拖入组件中,那么该指标字段所在的那张表一定保留完整,这样的处理方式可以保证我们的数据不丢失。
1)在组件中使用了「销售额表」里面的指标字段「销售额」,所以组件中「销售额表」的字段都保留完整。
2)在组件中使用了「销售额表」和「大区经理表」的指标字段,所以组件中这两张表的字段都保留完整。
原则二:只有维度字段参与,取交集
若组件中只有维度字段,那么这些维度字段所在的表取交集。
例如:在组件中只使用了「销售额表」和「大区经理表」的维度字段,所以这两张表取交集。
4. 模型更能保证数据的完整性
我们在做左右合并的时候,需要手动选择左合并、右合并、还是交集合并。
但若是我们对数据表了解不够充分,就容易出现计算问题。
例如下面两张表面临的场景:
大区经理表没有「杭州」:杭州是总部,故没有设置大区经理
销售额表没有「苏州」:苏州是新设立的大区,设置了负责人但还未有销售额数据
在我们不了解表的具体情况下,我们可能使用最经常用的左合并。当我们使用合并后的数据表统计员工人数的时候就会发现数据丢失,导致合计值错误。
选择「左合并、右合并、交集合并」都有不同程度的数据丢失。
而使用「主题模型」,完全避免了以上情况:
当我们想统计「销售额」的时候,销售额字段一定是完整的,当我们想统计「员工人数」的时候,员工人数字段一定是完整的。
不会出现合计值错误的情况。