在BW中,存在两种数据抽取方式,完全更新与增量更新,完全更新是每次把截至到某个时间的数据全部抽取,增量抽取则只抽取上次和本次抽取之间更新的数据,很显然,增量抽取能够提高系统效率,根据SAP帮 助的说法,增量更新又分为时间戳和增量队列两种方法,其中财务数据的抽取为时间戳增量法,后勤数据的抽取为增强队列法。对于增量更新,都需要先对数据抽取 进行初始化,然后再进行增量的抽取。对于时间戳增量法,系统存在一个延迟时间,即时间戳设置时间与记账时间的差异,比如时间戳是根据创建时间(或输入时 间)来确定是否更新的依据,而在抽取开始时(时间戳已标记),此时凭证已创建而未记账(即未更新至数据库),则此次无法抽取到该凭证,但下次抽取时,由于 已在时间戳范围之外,也不再进行抽取,从而导致抽取数据遗漏,避免此问题,SAP帮助上给出了通过设置安全抽取时间的方法,设置视图为BWOM2_V_SAFETY, 可根据不同的数据源设置不同的安全时间,两个小时为推荐设置,我的理解是这个安全时间是对于已经创建但未保存在凭证而言,如果在这个安全时间内保存了,则 此次抽取将包含在内,那时间戳标记会改变吗?如时间戳标记不变,则在安全时间内抽取不能结束,需一直等待凭证保存然后抽取?未进行测试,不知这样理解是否 正确。有的人会说,既然这样,何不根据记账时间来标记时间戳,我想如果根据记账日期,则增量更新问题更大,因为有的时候经常在下月往上月记账(财务正常结 帐是这样的),如果根据记账日期判断,则遗漏数据更多。财务上的时间戳标记表为BWOM2_TIMEST,其中TS_LOW和TS_HIGH字段为两次更新之间的时间差,修改凭证日期表则为BWFI_AEDAT。后勤数据抽取相关的T_code有LBWG/LBWE/LBWQ/RSA7等,后勤数据是先保存在R3端,然后再抽取到BW中的。
 
 
举个例子:
比如你6小时抽取一次数据,假如你第一次在12:00抽取,那么下次应该是18:00抽取,那么应该来说18:00抽取的数据是 12:00-18:00的数据才对,但是有种情况需要你考虑,比如我11:55在做一个凭证,但是中间我去吃饭,12:30才回来完成这个凭证,那么这个 凭证就是11:55创建的,在12:00抽取的时候,由于凭证没有产生,因此无法抽取,但是下次18:00抽取的时候,由于这个凭证是在11:55创建 的,所以也无法抽取到。
做BW数据仓库最重要的一条准则就是“不重复、不遗漏”,那么这样你就遗漏了数据,那么SAP就想了个办法,就是比如这次我抽取从 06:00-12:00,那么下次我抽取从11:30-18:00,这样上面的凭证就能抽取出来了吧,这时候11:30-12:00就有半个小时的重复, 这个就叫做Lower Limit。
同上,比如我12:00抽取的时候,不想抽取06:00-12:00,而是想抽取06:00-11:30,那么我就设置一个Higher Limit 为30分钟,则抽取的时候就不会到最新的时间,而是需要过账半小时前的凭证。
比如我设置了30分钟的Lower Limit,30分钟的Higher Limit,那么我12:00抽取的数据应该是05:00-11:30的数据,下次抽取的数据时11:00-17:30,在下次就是 17:00-23:30,在下次就是23:00-05:30,在下次就是05:00-11:30,如此循环。
但是如果设置了Lower Limit和Higher Limit之后,请记得在BW中使用DSO来处理数据。

[转载]BW增量更新的理解(时间戳)的更多相关文章

  1. 【转载】Unity 合理安排增量更新(热更新)

    原帖地址:由于我看到的那个网站发的这篇帖子很大可能是盗贴的,我就暂时不贴地址了.避免伤害原作者 原版写的有点乱,我个人修改整理了下. --------------------------------- ...

  2. app后端设计(10)--数据增量更新

    在新浪微博的app中,从别的页面进入主页,在没有网络的情况下,首页中的已经收到的微博还是能显示的,这显然是把相关的数据存储在app本地. 使用数据的app本地存储,能减少网络的流量,同时极大提高了用户 ...

  3. **app后端设计(10)--数据增量更新(省流量)

    在新浪微博的app中,从别的页面进入主页,在没有网络的情况下,首页中的已经收到的微博还是能显示的,这显然是把相关的数据存储在app本地. 使用数据的app本地存储,能减少网络的流量,同时极大提高了用户 ...

  4. 使用Redis SortedSet实现增量更新

    导读:前段时间有个需求是提供一个接口供客户端增量更新数据,当有数据被删除了以后客户端也需要感知到,并且要支持一定并发: 关键词:高并发,增量更新 前言 何谓增量更新,顾名思义就是只更新变化的部分,这样 ...

  5. Unity5 如何做资源管理和增量更新

    工具 Unity 中的资源来源有三个途径:一个是Unity自动打包资源,一个是Resources,一个是AssetBundle. Unity自动打包资源是指在Unity场景中直接使用到的资源会随着场景 ...

  6. 增量更新项目时的备份MyBak

    在增量更新项目时,做好备份十分重要,这里提供一个方法备份java Web所更新的文件. 把更新包放在指定目录,配好如下webappFolder.updateFolder以及bakeupFolder的路 ...

  7. Kettle中通过触发器方式实现数据 增量更新

    在使用Kettle进行数据同步的时候, 共有 1.使用时间戳进行数据增量更新 2.使用数据库日志进行数据增量更新 3.使用触发器+快照表 进行数据增量更新 今天要介绍的是第3中方法. 实验的思路是这样 ...

  8. 测试Kettle在增量更新的时候是否支持级联——不支持(基于mysql)

    由于LZ很像整理一下如何使用Kettle对一张表进行增量更新的时候, 同时实现对数据库中的其他表也可以实现相关的更新操作. 第一种方法想使用触发器,即在相应的hop之间添加SQL脚本step然后在st ...

  9. Elasticsearch 索引的全量/增量更新

    Elasticsearch 索引的全量/增量更新 当你的es 索引数据从mysql 全量导入之后,如何根据其他客户端改变索引数据源带来的变动来更新 es 索引数据呢. 首先用 Python 全量生成 ...

随机推荐

  1. 4.2.1 网络请求之HTTP

    HTTP请求&响应:(常用的只有Post与Get,还有Head/put/delete/connect/options/trace) Get&Post(建议用post规范参数传递方式,并 ...

  2. ORACLE 中NUMBER 类型 低精度转换成高精度

    例如: 表User中有一个字段 salary  Number(10,3), 如果想把字段salary的类型提高精度到salary  Number(10,6),保留六位小数, 解决办法:1,ALTER ...

  3. PAM禁止root用户登录,限制普通用户使用su切换到root

    系统环境是CentOS 6.5, 介绍下PAM(Pluggable Authentication Modules)在ssh服务上的简单配置过程. 1.必须先添加普通用户,并属于wheel组:保证有除r ...

  4. 架构模式对象与关系结构模式之:标识域(Identity Field)

    一:标识域(Identity Field) 标识域(Identity Field)可以理解为主键.使用领域模型和行数据入口的时候,就要使用标识域,因为这两个对象代表的是唯一存在的那个数据记录.事务脚本 ...

  5. Spring MVC + MyBatis整合(IntelliJ IDEA环境下)

    一些重要的知识: mybais-spring.jar及其提供的API: SqlSessionFactoryBean: SqlSessionFactory是由SqlSessionFactoryBuild ...

  6. 单线程&浏览器多线程

    知乎答案:http://www.zhihu.com/question/31982417/answer/54136684 copy大牛的好文:from http://www.cnblogs.com/Ma ...

  7. 狗日的js的闭包

    一.变量的作用域 要懂得闭包,起首必须懂得Javascript特别的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript说话的特别之处,就在于函数内部可以直接读取全局变量 ...

  8. ruby正则匹配回车换行符

    如果你使用/^.*$/这种正则是匹配不到回车换行符的. 所以应该像下面这么写: /^[\s\S]*$/

  9. Cocoa编程开发者手册

    Cocoa编程开发者手册(Objective-C权威著作超一流翻译阵容) [美] 奇斯纳尔(Chisnall,D.)  著 霍炬等 译 ISBN 978-7-121-12239-2 2013年7月出版 ...

  10. PLSQL查询表是否被锁定(转)

    PLSQL查询表是否被锁定(转) http://blog.sina.com.cn/s/blog_70717ff00100qb85.html (2011-05-08 13:13:06) 转载▼ 标签: ...