维度设计问题
0
现在有一个需求:
1.有一个4的企业维度
2.比如A企业是B,C的上级,在数据库中保留有A企业的数据,但是在B,C之和的基础上做了修改,因此两者是不相等的,这个我们叫合并数据。
3.在聚合时,如果有合并数据只能基于合并数据进行聚合,不能基于自然聚合的数据进行聚合。
我们现在的方法在数据仓库计算一个差额值,删掉合并数据,然后还是按照自然集合的方式实现,但是有一个缓慢变化维的情况,导致这个差值也是有问题的。
现在我们希望要么处理掉缓慢变化维的问题,要么实现只基于合并数据聚合....
各位有啥设计方案没?
1.有一个4的企业维度
2.比如A企业是B,C的上级,在数据库中保留有A企业的数据,但是在B,C之和的基础上做了修改,因此两者是不相等的,这个我们叫合并数据。
3.在聚合时,如果有合并数据只能基于合并数据进行聚合,不能基于自然聚合的数据进行聚合。
我们现在的方法在数据仓库计算一个差额值,删掉合并数据,然后还是按照自然集合的方式实现,但是有一个缓慢变化维的情况,导致这个差值也是有问题的。
现在我们希望要么处理掉缓慢变化维的问题,要么实现只基于合并数据聚合....
各位有啥设计方案没?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2016-02-16 回答
赞同来自:
维度表里面不要存储度量相关的东西,统统放到FACT里面处理。
我大概其理解一下:
1. 首先,org应该是tree结构的,也就是说存在不齐整的场景
2. 在fact table中,parent company的数据是需要预先计算的。也就是说,无论如何,你都要给parent company对应的行插入一条记录
3. 存在slowly changing现象,我的理解是org的变化,比如A的子节点由BC变成CD,B挪到A‘,之类
模型大概其如上所示,维度表里保存org的信息以及之间的关系,增加一个surrogate key,用effective date + company id作为combined的natrual key。事实表中有个date_key的column,用于标记在每个你需要记录的快照周期。sales amount里面需要保存B+C的原始计算值,adjustment sales amount用于保存你合并以后的delta值。不知道这么做是不是能满足你的需求