在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. 解决Win7下打不开chm文件的方法

    win7 无法打开chm操作如下:1,在命令行运行regsvr32 itss.dll2,在命令行运行regsvr32 hhctrl.ocx

  2. window.opener强大功能

    window.opener后面的方法可以调用任意父窗口里面js的方法. eg.query()是父窗口的 function refreshParent(){   window.opener.query( ...

  3. 拉格朗日乘子法和KKT条件

    拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件 ...

  4. Jquery插件实现点击获取验证码后60秒内禁止重新获取

    通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能 先到官网(http://plugins.jquery.com/cookie/ )下载coo ...

  5. JAVA的初始化顺序(续)

    JAVA在创建对象之前,是先加载类,然后再创建对象. 加载类时,会加载静态的成员变量,包括父类的静态成员变量[先加载父类,再加载子类]. 一.  静态成员变量的初始化 package com.cnbl ...

  6. Helios与Katana的区别

    Helios与Katana都是微软开发的基于IIS的OWIN实现. 它们之间的区别很简单:Helios不依赖于ASP.NET Runtime,Katana依赖于ASP.NET Runtime. Hel ...

  7. Linux(Red Hat 6 32位) 下安装Mysql5.6.30

    转载地址:http://my.oschina.net/fusxian/blog/300480 1. 下载MySQL 5.6 下载页面:http://dev.mysql.com/downloads/my ...

  8. [MSSQL2012]LEAD函数

    LEAD函数简单点说,就是把下一行的某列数据提取到当前行来显示,看示例更能解释清楚,先看测试用脚本 DECLARE @TestData TABLE(     ID INT IDENTITY(1,1), ...

  9. iOS开发——高级技术&地图功能的实现

    地图功能的实现 因为有个项目要在地图中显示位置,所以用到了MapKit. 记录下来,以免以后忘记. 加入MapKit library 首先得在项目中加入MapKit,如图 MapView 先增加一个V ...

  10. 好消息!Html5游戏和动画的福音

    今年基本都淡出了cocos2d-js的开发,更多集中在普通H5应用上,还有自己的Fanvas组件(http://code.tencent.com/),做canvas动画. 不过,最近回头一看WebGL ...