[轉載]BW增量更新的理解(時間戳)

在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來處理數據。
相關文章
相關標籤/搜索