如何反映主数据的历史变化?【转自WKingChen的博客】

来源:互联网 发布:电子产品软件规格书 编辑:程序博客网 时间:2024/04/19 13:31

转发理由:第一次碰到这种想法,也是对时间依赖的实战应用吧,想法很独到。

 

有时,用户会对主数据(例如客户、物料)做一些修改,例如修改客户所属的区域,修改物料所属的分类等等。那么,对于这种修改过的主数据(DW中的缓慢变化维),如何在报表中体现出历史的真实情况呢?

首先,我们来看标准设置下的主数据更新情况。假设0customer 有一个属性0region, 该属性为time-indepent。这种情况下,当用户更新某customer的region时,原region会被覆盖。因此,报表中得到的都是关于 该客户的最新的region。Drilldown by region时,该客户的所有历史数据都将被归入最新的region中。这样,显然是无法反映历史真实情况的。

这时,我们会想到将0region设置为time-dependent,这样一样来,该customer的region值将和时间绑定。做报表时,根据指 定的key date不同,或得到原来的region或得到新的region。Drilldown by region时,该客户的数据或归入新的region,或归入旧的region,也无法反映历史的真实。

那么,解决方案是什么呢? 很简单,把region放入 InfoCube的Characteristic中,采用读主数据的方式获得其当前的值,这样region的历史数据在抽数时就被保存下来了。不过,这样 做也有一个不足,当需要对系统重新抽数时,region的历史数据将被新数据覆盖。这时,如果即采用time-depent的设置,有将region放入_characteristic中,在抽数时指定key date,则可以完美解决该问题。

满怀希望,期待未知的旅程。
原创粉丝点击