最近学习BW Delta机制的时候读到一篇好的文章,跟大家共勉, 文章来源:
http://blog.youkuaiyun.com/SZ_ZYXX_2008_2010/archive/2010/01/08/5156353.aspx
1 说说假增量
我们都知道,对于BW来说,很多ECC的标准数据源自带了增量更新功能,每天各种凭证产生的增量数据会自动堆积到增量队列里,然后BW端做一个增量信息包按天把这些增量抽取到数据仓库里,非常轻松自然,对于客户和顾问,都是透明的自动的容易实施的,这也是上过ECC的企业数据仓库采用SAP BW的一个优势所在。
但是对于非ECC的一般数据库或者ECC的自定义数据源,做增量更新就苦了。对于ECC的自定义数据源,SAP给了一种标准方案,我们看看这种方法:用一个时间字段或数字字段标记增量,当这个字段在表里的数值变化时,就认为是增量,把这条记录作为增量记录,增量信息包会挑出这些记录传送上去。这种方法的问题是显而易见的,不管是时间还是数字字段,我们都需要ABAP工作者额外编程去控制这个字段的变化,这样才能正确让系统选择出增量(用表中的凭证创建日期等字段作为时间字段去控制是不可行的,因为你不能保证今天不会修改昨天的数。)对于非ECC的一般数据库连接,SAP很干脆的说,不支持增量(06年是这么讲的,以后支不支持不晓得)
总结一下,在不同的数据源下,对增量的支持是这样的:
解释一下这个图,CUBE里的数据是不能覆盖的,所以,如果要每天抽取部分数据的话,必须要把上次相同抽取条件(比如:今年)的数(请求)给删掉,这个我们可以在处理链里设置:删除信息块中的重叠请求:
请关注最后两句!我是写这篇文章的时候去翻教材才发现的,具体方法应该就是本文这种或者备注猜测的那种。
本文说了那么多,教材这两句竟然给概括掉了,真牛!有的时候想想,SAP官方教材还真是有很多闪光点的,窝在一些无人关注的角落等待你突然发现……
一般来说,数据源都是先把数传递到DSO