维度设计问题

0
现在有一个需求:

1.有一个4的企业维度

2.比如A企业是B,C的上级,在数据库中保留有A企业的数据,但是在B,C之和的基础上做了修改,因此两者是不相等的,这个我们叫合并数据。

3.在聚合时,如果有合并数据只能基于合并数据进行聚合,不能基于自然聚合的数据进行聚合。

我们现在的方法在数据仓库计算一个差额值,删掉合并数据,然后还是按照自然集合的方式实现,但是有一个缓慢变化维的情况,导致这个差值也是有问题的。


现在我们希望要么处理掉缓慢变化维的问题,要么实现只基于合并数据聚合....

各位有啥设计方案没?
已邀请:
0

BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2016-02-16 回答

你这个不是维度设计的问题,而是FACT Table设计的问题。
维度表里面不要存储度量相关的东西,统统放到FACT里面处理。

我大概其理解一下:
1. 首先,org应该是tree结构的,也就是说存在不齐整的场景
2. 在fact table中,parent company的数据是需要预先计算的。也就是说,无论如何,你都要给parent company对应的行插入一条记录
3. 存在slowly changing现象,我的理解是org的变化,比如A的子节点由BC变成CD,B挪到A‘,之类
Capture.PNG
 
 
模型大概其如上所示,维度表里保存org的信息以及之间的关系,增加一个surrogate key,用effective date + company id作为combined的natrual key。事实表中有个date_key的column,用于标记在每个你需要记录的快照周期。sales amount里面需要保存B+C的原始计算值,adjustment sales amount用于保存你合并以后的delta值。不知道这么做是不是能满足你的需求

要回复问题请先登录注册