父子维度缓慢变化如何处理
0
比如销售企业 主管A 下属为B,C,D 。B的下属为 E.F.D。如果B经过一段时间后万为A1的下属了。那么应该处理处理。生成一条新的B1为A1的下属。那B原来下属EFD怎么处理。
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
2 个回复
BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2015-10-27 回答
赞同来自:
个人建议像这类父子结构的关系变化,直接采用覆盖的形式即可。
比如上图中, B 的上级原来是 A (P_ID=2),现在变为 A1,那么直接更改为 A1 (P_ID=8)即可。
如果你需要保留历史纪录,你需要看看这篇缓慢渐变维度就会提到如何保留历史,这样的改变就意味着:自 B 和 B 以下的 E,F,G 以及 E,F,G 它们的子子孙孙都需要做的一件事情就是结束旧的一条历史纪录,插入一条新的记录表明这是当前最新的维度,这样的 UPDATE 语句和 INSERT 语句我感觉处理起来很麻烦了。
所以建议你认真考虑一下这种情况下是否有保留历史纪录的必要,这种分析场景是否存在,如果这种情况不能避免要么就是这种最原始的方式,要么就需要考虑
BAO胖子 - 15年BI经验,涉足电力,快消品,医药,信息服务等行业的BI老兵。 2015-10-27 回答
赞同来自:
分析的需求通常是要求某个时间点,到一个时间点,求取固定的时间周期(比如月份/季度),这和人员的业绩考虑的规则息息相关,如果你能提供更多的信息,可以做出更为准确的模型。下面只是一个例子,以为借鉴:这种情况可以考虑父子维度表中增加一个时间周期字段,大概的模型如下图:
--------------------------------------------
至于你提出的
比如销售企业 主管A 下属为B,C,D 。B的下属为 E.F.D。如果B经过一段时间后万为A1的下属了。那么应该处理处理。生成一条新的B1为A1的下属。那B原来下属EFD怎么处理。
这个是你应该在提问里写清楚的啊。实际场景中,他们是否还Report给B吗?如果还是Report给B,上面的方案自然可以解决,如果不是,你就需要更详细的描述需求了。