有时,用户会对主数据(例如客户、物料)做一些修改,例如修改客户所属的区域,修改物料所属的分类等等。那么,对于这种修改过的主数据(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,则可以完美解决该问题。
如何反映主数据的历史变化?
最新推荐文章于 2022-11-04 22:06:35 发布